我正在使用$ .get来发送和接收来自我的php文件的响应。 当我访问get-ratings.php时,它会正常输出响应。 然后当我使用jquery时,它完全失败了。
这些是萤火虫日志
PARAMS:
ids fymCtKsm71o,C-4JaNph8Lw,wjdUA2Ws7To,8MTKCig_8SM,2EGJzw3ksYo,vs7NPsSiNv4,MhfJs6ZyWtQ,5QJnPIOqqdw,1lh9rsqOoVM,uMPQTvmOzMM,wpZHXP-hbnU,qUQsKUglv0g,Zt1Z7TYztcA,3UrXj43ORPg,YWSG9Mo4GQQ,LCqr4ZU0t3M,71YsRO6G7Ks,8HZPb7ulu08,rnkn1lVGE2Q,bRNkJM264Kk,nbsmonNnbBQ,HsTlpMPWHlA,FbsgHbXubGU,D9DkciMTsLI,2j3afn_On6I,ofmSvHGCPQE,EBWo-F2G4Wg,b5pGmQXQdF8,v-1EaCwJkKk,ccGKGkkhGZo,JYArUl0TzhA,VwMSsicKRYI,hy4hKG1A0T8,21y8qdoAUI8,
接头
Date Mon, 01 Aug 2011 21:41:31 GMT
Server Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
X-Powered-By PHP/5.3.6
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html
Request Headers
Host
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
DNT 1
Connection keep-alive
Referer
Origin
响应为空,在网址旁边有红色x
200 OK 9.23s
即使我将我的php文件设置为只回显一行简单的文本,它也会失败。
这是我正在使用的jquery代码
$.get("get-ratings.php", { ids:vidIds.trim(",") }, function(data){
console.log("MADE IT: " + data);
});
我从一个javascript文件中调用此代码,该文件包含在与托管的get-ratings.php不同的域中。
我尝试过使用$ .post和$ .ajax,两者都失败了。
答案 0 :(得分:2)
跨域请求通常会失败。使用getJSON。
答案 1 :(得分:1)
跨域策略限制...现代浏览器不允许XHR请求除托管页面之外的域。
如果您有权访问PHP文件,则可以使用JSONP中的技术: 而不是AJAX,创建一个新的脚本元素,将php文件的路径设置为源,并将脚本元素附加到文档。然后,在php文件中,将输出包装在“javascript函数”中。
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "get-ratings.php";
$("head").append(script);
创建一个新的js函数
window.complete = function(data){
//do your stuff here with data received;
}
最后是php代码
instead of just "echo $data", use
echo "complete('.$data.')";