javascript - PHP服务器只接受部分图片,跨域

标签 javascript php jquery ajax cross-domain

编辑
感谢大家的帮助,我决定将前端移到后端服务器,其他部分使用旧的前端服务器。再次谢谢你。如果有人能回答这个问题,我仍然会奖励最佳答案和一些赞成票。这真是令人难以置信。作为我的感谢,这是一张猫的照片。


(来源:placekitten.com)

我正在通过 ajax 将图像数据从我的 javascript 发送到我的其他服务器上的 php,以解析数据、保存数据并返回图像链接。 (是的,它必须是两个服务器)我可以发送一些图像,但我的一半测试图像返回错误。

XMLHttpRequest cannot load *php-file-on-recieving-server*. Origin *sending-server* is not allowed by Access-Control-Allow-Origin.

这是javascript

$.ajax({
    url: '*php-file-on-recieving-server*',
    type: 'POST',
    data: {
        urlordata: false,
        room: 'Math',
        data: e.target.result
    },
    success: function(data) {
        $('.t'+thumbNumberCounter).attr('src', data);
    },
    error: function(xhr, status, error) {
        $('.t'+thumbNumberCounter).attr('src', '*error-image*');
    }
});

这是PHP

<?php

error_reporting(E_ERROR | E_PARSE);

header('Access-Control-Allow-Origin: *sending-server*');

$room = $_POST['room'];
$filename = $room.uniqid('_');

$data = $_POST['data'];
$uri = substr($data, strpos($data,",")+1);
$encodedUri = str_replace(' ','+',$uri);
file_put_contents('*folder-where-images-are-stored*'.$filename, base64_decode($encodedUri));

echo '*folder-where-images-are-stored*'.$filename;
?>

图像是否有任何原因会导致它说不允许跨域?我特意授予了它许可,它可以与其他图像一起使用。只是不是我尝试过的一些。会不会是图片的大小?

编辑

这是我的网络选项卡关于失败请求的内容。

请求网址:*接收服务器*

请求 header
接受:*/*
内容类型:application/x-www-form-urlencoded;字符集=UTF-8
来源:*发送服务器*
Referer:*发送服务器*
用户代理:Mozilla/5.0 (X11; CrOS i686 4319.96.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.74 Safari/537.36

表格数据
urlordata:false
房间:数学
data:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAPACAIAAAaqgF+sAA……(很长)

最佳答案

将这三个服务器变量转储到图像接受服务器 'REMOTE_ADDR'、'REMOTE_HOST'、'REMOTE_PORT' 上成功和不成功请求的文件中,并比较它们。

关于javascript - PHP服务器只接受部分图片,跨域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20580091/

相关文章:

javascript - 当字符串以 "<"字符开头时,jQuery 正则表达式无法匹配

javascript - 当我点击标签时传递 jquery 参数

php - MySQL Joins 和 COUNT() 不返回所有记录

javascript - 在 PreventDefault() 之后触发事件无法按预期工作

javascript - 在所有商标和注册商标符号周围添加上标 <sup> 标签

另一个脚本启动后 Javascript 失败

php - Ubuntu 到 Windows + php/mysql xml 脚本没有响应

javascript - 由于添加另一个元素而移动的元素的 DOM 动画

jquery - 在 Safari 中提交表单后无法对 DOM 进行样式更改

javascript - £ 在输入 [type=text] 上