修改
感谢您的帮助,我决定将前端移动到后端服务器,并将旧的前端服务器用于其他部分。再次谢谢你。如果有人能回答这个问题,我仍然会给出最好的答案和一些赞成。这真的令人难以置信。这是一张猫的照片,谢谢。
http://www.placekitten.com/75/75
我将我的javascript中的图像数据通过ajax发送到我的其他服务器上的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;
?>
是否有任何理由导致图片说不允许跨域?我特意给了它许可,它适用于其他图像。只是不是我尝试过的一些。这可能是图像的大小吗?
修改
以下是我的网络标签中有关失败请求的说明。
请求网址:*接收服务器*
请求标题
接受:* / *
内容类型:应用/ X WWW的窗体-urlencoded;字符集= UTF-8
来源:*发送服务器*
的Referer:*发送服务器*
用户代理:Mozilla / 5.0(X11; CrOS i686 4319.96.0)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 29.0.1547.74 Safari / 537.36
表格数据
urlordata:假
房间:数学
数据:data:image / png; base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAPACAIAAAAqgF + sAA ......(很长)
答案 0 :(得分:1)
将这三个服务器变量转储到图像接收服务器'REMOTE_ADDR','REMOTE_HOST','REMOTE_PORT'上的成功和不成功请求的文件中,然后进行比较。