2012-03-02 144 views
0

我发送一个休息请求到服务器并获取状态200好,但没有响应中的内容。通过发送休息请求和返回状态200没有响应正常

$.getJSON("http://192.168.0.94:8084/datasnap/rest/TServerMethods1/ReverseString/sfasda/", function(data) { 
    alert(data); 
}); 

我调试与萤火这一点,并在标题:

Connection close 
Content-Length 21 
Content-Type text/html; charset=ISO-8859-1 
Pragma dssession=188802.418847.903604,dssessionexpires=1200000 
Request Headers 
Accept application/json, text/javascript, */*; q=0.01 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Accept-Encoding gzip, deflate 
Accept-Language en-us,en;q=0.5 
Connection keep-alive 
Host 192.168.0.94:8084 
Origin http://192.168.0.92 
Referer http://192.168.0.92/visuals/index.php?page=pincodescreen 
User-Agent Mozilla/5.0 (Windows NT 5.2; rv:5.0) Gecko/20100101 Firefox/5.0 

什么我错了吗?

回答

0

您正在做一个跨域请求,由于JavaScript same origin policy,这将不起作用。您的请求源于http://192.168.0.92的文档,而目标是http://192.168.0.94:8084/。据我所知,即使不同的端口也会触发政策,使得不可能直接请求数据。

假设您可以控制第二台服务器,请重新编写使用JSONP的请求。

+0

太糟糕了,我无法控制第二台服务器 – robind38 2012-03-02 15:29:20

+0

可以通过使用我的浏览器或php来实现,但我希望客户端执行 – robind38 2012-03-02 15:33:38

+1

您可以在服务器上放置代理脚本。你的客户端就会调用这个脚本,而这个脚本又会从远程服务器获取资源并将其转发给客户端。客户可以用任何必要的方式处理数据。对于你的客户来说,只有一台服务器可以与之通话,因此你不会有相同来源策略的问题。 – Sirko 2012-03-02 15:38:34

相关问题