我有一个html/jQuery网页和一个PHP服务器。从网页我做一个"post"请求到我的服务器,像这样:
var data = '{"deviceUUID":"' + userId + '"}'
$.ajax({
type: "POST",
url: "http://192.138.2.113/Server_CityInfo/whereSubscribed.php",
data: data
})
如你所见,我只发送一个id, json格式。请求到达服务器,经过一些"烹饪"后,我从服务器返回一个回显到网页:
echo json_encode($result);
对不起,如果我的问题听起来很愚蠢,但我如何"捕捉"这个回声到我的网页与jquery?
在这样的成功处理程序中-
$.ajax({
type: "POST",
url: "http://192.138.2.113/Server_CityInfo/whereSubscribed.php",
data: data,
success: function (data) {
alert(data); // here you got `$result` in data
}
});
- http://api.jquery.com/jQuery.ajax/
PHP服务器位于与web页面不同的源(不同的ip,域,子域或协议)。因此,您的请求被同源策略捕获。
有三种常见的方法来解决这个问题:您可以使用JSONP,但这意味着必须使用GET而不是POST,并且服务器必须以JSONP格式返回数据。
你可以使用CORS,但是PHP服务器必须实现CORS标头,你必须实现jQuery的补丁(或手动发送请求)来支持IE8和IE9。IE7根本不支持CORS。
第三种选择是在您的web服务器上使用代理,或者在正确实现CORS或JSONP的第三方服务器上使用代理。一个常见的第三方服务就是YQL,这里有一个很好的例子
您需要使用回调方法,该方法将在响应返回时处理响应(因为它是异步的)…