2012-09-27 83 views
1

我想从给定的ajax调用中调用webservice方法。我的网络服务托管在同一个应用程序中。访问控制 - 允许来源不允许访问来源http://example.com

$.ajax({ 
    type: "POST", 
    url: "http://1.1.1.1/demo/sblead.asmx/SBLeadsSave", 
    data: "{'whenNeeded':'" + whenNeeded + "','howLong': '" + howLong + "','size': '" + Size + "','customerName': '" + name + "','mobile': '" + mobile + "','email': '" + email + "','comments': '" + comments + "','nextContract': '','unitLocation': '" + unitLocation + "'}", 
    contentType: "application/json; charset=utf-8", 

    dataType: "jsonp", 
    callback: '?', 
    crossDomain: true, 

    success: function (response) { 
     // debugger; 
     var res = response.d; 
     if (res == "True") { 
      location.href = "http://1.1.1.1/SBleadSuccess.htm"; 
     } else { 
      alert('Data Saving failed please try again'); 
     } 
    }, 
    failure: function (result) { 
     alert(result.status + ' ' + result.statusText); 
    }, 
    beforeSend: setHeader 

Web服务方法没有得到调用,当我使用Chrome开发者工具看到它 - >网络,我可以看到响应为原点http://www.example.com没有被访问控制允许来源允许的。

它在测试服务器上工作,但不在生产服务器上。

我该如何解决这个问题?

回答

0

这是因为您打电话给http://1.1.1.1/demo/sblead.asmx/SBLeadsSave,但这并不是您的生产服务器位置。

将您的生产服务器位置,或只是/demo/sblead.asmx/SBLeadsSave