2012-06-06 157 views
0

我试图执行一个静态javascript/jQuery脚本来测试我的ajax函数。这将是比如某处在我家目录将包含一堆ajax请求我localhostajax请求抛出错误

function getSomethingAjax(){ 
    $.get('http://127.0.0.1:8888/getSomething',{} , function(json){  
     getSomethingCallback(json); 
    }, "json"); 
} 

我的萤火虫给我这样的错误: firebug screenshot http://img443.imageshack.us/img443/4934/tinygrabscreenshot06061.png 但是如果我手动打开的页面(只键入浏览器:127.0.0.1:8888/getSomething)我得到匹配的返回。访问网址有什么区别?我请求ajax等待特定的返回值?

+0

尝试删除绝对网址getSomething并只使用/ getSomething。无论如何,跨域请求是不允许的。而且我也不认为把变量命名为“json”是个好主意,因为它可能是一个受限制的关键字。该变量通常称为“数据” – Cristy

+0

文件扩展名? 'getSomething.php'或'getSomething.asp'。 – Stefan

+0

这是一个调用PHP的codeigniter它实际上是像127.0.0.1:8888/ci/app/index.php/getSomething –

回答

0

发出Ajax请求和页面请求的页面必须位于同一个域中。

浏览器将阻止任何违反此操作的ajax请求。

只是一个建议: 我会建议使用服务器端语言来做测试。这将允许您调用应用程序,而不必将测试脚本保留在同一个域中。

+0

来自外地的应用程序调用将如何进行? –

+0

如果你使用Java,你可以使用HttpURLConnection来完成。在PHP中卷曲。 –

+0

似乎没有问题 - 我尝试了这篇文章的第一种方法(http://www.simple-talk.com/dotnet/asp.net/calling-cross-domain-web-services-in -ajax /) - 通过尝试他的[url](http://twitter.com/users/usejquery.json?callback=?)没有错误,但尝试我的url抛出与以前相同的错误 –

0

也许您的返回地址与您的地址不符。 如果您使用127.0.0.1发送请求,则服务器返回本地主机将失败。尝试使用本地主机而不是IP?