jQuery调用远程Web服务

时间:2015-05-19 20:45:14

标签: jquery ajax

当我托管Data.ashx(本地此应用程序)时,此代码不起作用。如果我在本地使用url Data.ashx,它可以正常工作。

jQuery.ajax({
    type : "GET",
    url: "http://aspspider.ws/ghadyAlhamad/Data.ashx",
    data: "{ 'MethodName': 'GetData' }", 
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success : function(data){
        $('#display').html("<h1> Hi, " + data.FirstName + " " + data.LastName + " your Blog Address is http://" + data.Blog + "</h1>");
    },
    error: function (err, e, m) {
        alert("error= " + e);
    }
}); 

2 个答案:

答案 0 :(得分:0)

如果该应用是在本地托管的,并且您向http://aspspider.ws发出了http请求,那么您将面临相同的原始政策限制(http://en.wikipedia.org/wiki/Same-origin_policy)。

尝试使用相对网址,例如url: "ghadyAlhamad/Data.ashx",而不是url: "http://aspspider.ws/ghadyAlhamad/Data.ashx",

答案 1 :(得分:0)

我通过在ashx文件中添加标题解决了这个问题,如下所示:

    context.Response.AddHeader("Pragma", "no-cache");
    context.Response.AddHeader("Cache-Control", "private, no-cache");
    context.Response.AddHeader("Access-Control-Allow-Headers", "X-File-Name,X-File-Type,X-File-Size");
    context.Response.AddHeader("Access-Control-Allow-Origin", "*");

或web.config:

enter image description here