JQuery ajax跨域调用和权限问题

时间:2010-02-04 02:27:08

标签: javascript jquery asp.net ajax cross-domain

我有这个轮询脚本来检查服务器上是否创建了一个文本文件。在本地工作很好,但当文件在不同的域上时失败。我如何重写这个以获得跨域支持?

$.ajax({ 
    url: 'http://blah.mydomain.com/test.txt', 
    type: "GET", 
    success: function(result) { 
        //Success!
        window.location.replace(Successful.aspx');
    }, 
    error: function(request, status, error) { 
        setTimeout("VerifyStatus(" + pollingInterval + ")");
    }
    });

修改: 我最终使用YQL来解决跨域问题,虽然它可以正常工作,但YQL实际上很慢,增加了相当多的性能开销。任何人都可以为跨域JQuery调用提出更好的解决方案吗?

4 个答案:

答案 0 :(得分:7)

$.ajax()来电中将dataType设置为“JSONP”。您必须确保响应格式正确才能生效。维基百科在JSONP上有一个很好的部分。

答案 1 :(得分:4)

Ajax不跨域。你最好的办法是在本地域上创建一个检查的php页面,然后用你的ajax调用转到-that-。

答案 2 :(得分:1)

要通过jQuery获取跨域AJAX,您可能需要检查一下: http://github.com/jamespadolsey/jQuery-Plugins/tree/master/cross-domain-ajax/

答案 3 :(得分:0)

现在几乎所有现代浏览器都支持使用CORS协议的跨域,因此您可以使用Ajax jQuery完成工作,而无需编辑脚本代码中的任何内容。更改是您的服务器,您需要使用CORS启用您的服务器。它只是在每个响应中添加头字段到客户端以支持CORS协议的工作。请参阅此处的实施示例。

http://zhentao-li.blogspot.com/2013/06/example-for-enabling-cors-support-in.html