2012-09-27 667 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