如何在“POST”请求中捕获响应?

时间:2013-05-21 16:54:40

标签: php jquery json post http-post

我有一个html / jQuery webPage和一个PHP服务器。从webPage我正在向我的服务器发出“发布”请求,如下所示:

var data = '{"deviceUUID":"' + userId + '"}'
                 $.ajax({
                     type: "POST",
                     url: "http://192.138.2.113/Server_CityInfo/whereSubscribed.php",
                     data: data 
                     })

如您所见,我只以json格式发送 id 。请求到达服务器,经过一些“烹饪”后,我从服务器回复到webPage:

echo json_encode($result);

很抱歉,如果我的问题听起来很愚蠢,但我如何用jquery“捕获”这个回显到我的网页?

3 个答案:

答案 0 :(得分:2)

像这样的成功处理程序 -

$.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
    }
});

答案 1 :(得分:0)

PHP服务器位于与网页不同的源(不同的IP,域,子域或协议)上。因此,您的请求被Same Origin Policy抓住了。

有三种常见方法可以解决此问题:

您可以使用JSONP,但这意味着必须使用GET而不是POST,并且服务器必须以JSONP格式返回数据。

您可以使用CORS,但PHP Server必须实现cors头,您必须实现jQuery的补丁(或手动发送请求)以支持IE8和IE9。 IE7根本不支持CORS。

第三种选择是在您的网络服务器上或在正确实施CORS或JSONP的第三方服务器上使用代理。一个常见的第三方服务是YQL,并且有一个非常好的示例 here

答案 2 :(得分:-2)

你需要使用一个回调方法,它会在回复时处理响应(因为它是asynchrone)......