【发布时间】:2014-06-26 05:00:00
【问题描述】:
我必须从服务器 A 上的 javascript 向服务器 B 上的 php 文件发出请求。我可以访问两台服务器。
但是有些事情出了问题。我总是准备好状态 0,状态 0。
这是我尝试的最新方法:请指出我做错了什么。谢谢。
服务器 A:
$.ajax({
type: "GET",
url: 'http://server_B/request.php',
data: form_data,
dataType: 'json',
success: function (resp) {
alert("Successful");
console.log("Response completed");
console.log("resp is" + resp);
},
error: function (xhr, error) {
console.log("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
console.log("responseText: " + xhr.responseText);
alert("Error occurred.");
}
});
服务器 B:request.php
<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
# do the work and save it on $result array.
print json_encode($result,true);
?>
【问题讨论】:
-
我对 jsnop 不熟悉,而且我在控制台上没有得到任何结果,所以要了解发生了什么......
-
在你的ajax调用中,使用
dataType: 'jsonp'- 了解JSONP -
您是否从控制台中登录的 XMLHttpRequest 中获得 SecurityError?如果您允许
*,它是否有效? -
您在控制台中看到了什么?正在发送什么具体请求?是 OPTIONS 还是 GET?
-
您的 javascript 控制台中应该有一个错误。在 Chrome 中(也许还有其他的,但肯定是 Chrome),它会告诉你到底是什么问题。
标签: javascript php jquery cross-domain