2013-08-27 52 views
0

我編寫了一個WCF庫並將其放在服務器(IIS7)上。我可以通過瀏覽像「foo.com/test.asmx」這樣的URL來訪問它的文件夾及其內容,其方法可以看作是「foo.com/test.asmx/MyMethod」無法通過JQuery-Ajax到達IIS上的WCF服務

當我瀏覽服務器(服務器本地)上的相同應用程序,並通過使用URL「foo.com/test.asmx/MyMethod」向該方法發送請求。我得到正確的結果。

但是,當我在本地計算機上瀏覽相同的html頁面並向URL「foo.com/test.asmx/MyMethod」發送相同的請求時,ajax請求處於錯誤狀態。 (除此之外,它在我的計算機上的本地主機上正確運行)

我想我無法到達該方法或從本地服務器獲取結果。

我的Ajax調用:

var loginInfo = "{ 'username': '" + encodeURIComponent($("#lUsername").val()) + "', 'password': '" + encodeURIComponent($("#lPassword").val()) + "', 'uuid': 'asd'}"; 
$.ajax({ 
       type: "POST", 
       //async: false, 
       crossDomain: true, 
       url: "http://foo.com/test.asmx/MyMethod", 
       data: loginInfo, 
       contentType: "application/json; charset=utf-8", 
       dataType: 'json', 
       success: function (msg) {      
        var myJsonObj = $.parseJSON(msg.d);      
        if (myJsonObj.userLoggedIn == 1) {      
         insertLoginToDB(myJsonObj.username, myJsonObj.userEmail, myJsonObj.userDeviceUuid); 
         $.mobile.changePage("#homePage", { transition: "none" }); 
        } 
        else { 
         alert("Unsuccessful login. Try again."); 
        }        
       }, 
       error: function (msg) { 
        alert("Error!"); 
       } 
      }); 

我怎樣才能解決這個問題?是什麼導致了這種錯誤?

+0

請問您可以發佈test.asmx的代碼。 –

回答

0

我不確定您的客戶端應用程序或html頁面和您的服務都駐留在不同的域上,但是如果他們這樣做,那麼看起來您嘗試使用jquery(或純javascript)進行跨域發佈,爲此可能看起來類似於你的問題,通過它或谷歌瀏覽「在jquery中跨域發佈」,我想那是什麼是你的核心問題。

jQuery AJAX cross domain

總之,如果是跨域你[R嘗試,那麼你需要使用JSONP數據類型的同時使jQuery的AJAX調用。