如何在“post”中捕捉到回复请求


How to catch a response in a "POST" request?

我有一个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,这里有一个很好的例子

您需要使用回调方法,该方法将在响应返回时处理响应(因为它是异步的)…