2013-09-22 26 views
0

我在一個HTML頁面上運行Ajax,該頁面應該調用Web服務,並且ajax調用不工作,我不相信它甚至會轉到Web服務。HTML5頁面沒有製作JQuery Ajax請求

問題出在這裏:當我點擊按鈕時,出現textStatus錯誤,而errorThrown沒有任何錯誤。本地主機在我的VS 2013 IDE中運行並帶有一個斷點,並且永遠不會到達那裏。項目的性質決定了我使用HTML頁面和JQuery將收集的數據傳遞給Web服務以管理數據。但是,就好像它從不運行,我可以找到的每個參考都說這個代碼是正確的。我關心的兩件事是使用JSON來提供數據合同的參數。如果沒有將其轉換爲數據契約類的方式,它如何工作。我也嘗試了很多方式來傳遞JSON,而且似乎沒有任何改變我的命運。如果我可以產生一個錯誤來調試,至少可以幫助我指出正確的方向,但我會得到nada ...事情是我已經嘗試了這個過程,使用表單設置爲一個ashx頁面的動作工作,但這似乎更多的是一個黑客,因爲我不得不推遲迴到調用html頁面說你的數據已提交。另外,我認爲JQuery Ajax是一個更清潔更優雅的解決方案。這個Web服務中有幾種方法已經可以讓其他項目接受並管理他們的數據,我想擴展它以包含HTML頁面數據......任何人都可以看到我在哪裏出錯了嗎?非常感謝......我已經在過去的兩天中被這個人困住了,我不得不繼續前進。

的代碼如下:

$(document).ready(function() { 

     // alert("running inside"); 
     var webServiceURL = 'http://localhost:50350/DBMgr.svc/updateData'; 
     var data = "{FirstName:'name',LastName:'surname'}"; 

     alert(data); 

     $("input[id='btnSubmitLead']").click(function() { 
      $.ajax({ 
       type: "POST", 
       url: webServiceURL, 
       data: data, 
       dataType: "json", 
       success: function (results) { 
        alert("Your information has been sent, thank you... "); 
       }, 
       error: function (jqXHR, textStatus, errorThrown) { 
        alert(textStatus +"-"+ errorThrown); 
        alert("Your information has not been sent "); 
       } 
      }); 
     }); 

我的WCF服務:

public LeadData updateData(LeadData loadData) 
    { 
     LeadData updateok = new LeadData(); 

     if (loadData.FirstName.Length > 0) 
     { 
      updateok.FirstName = "It has"; 
      updateok.LastName = "Been found"; 
     } 
     else 
     { 
      updateok.FirstName = "Name"; 
      updateok.LastName = "Not Found"; 
     } 

     return updateok; 
    } 

和聲明:

[OperationContract] 
    [WebInvoke(Method="POST", RequestFormat=WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)] 
    LeadData updateData(LeadData loadData); 


[DataContract] 
public class LeadData 
{ 

    [DataMember] 
    public string FirstName { get; set; } 

    [DataMember] 
    public string LastName { get; set; } 

} 

噢,是和HTML包括這樣的:

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type=""></script> 
+0

你有沒有試過用Fiddler2這樣的測試工具打你的服務?這也將跟蹤傳出的請求和服務器響應,以便您可以查看它是否僅僅是找不到該服務。你是否從與你的網站相同的項目運行你的服務? –

+0

不,它們在同一臺機器上,但有兩個不同的項目可以模擬從一個位置到另一個位置的呼叫。我聽說過很多關於小提琴手的事,但從來沒有用過......每一樣東西都有第一。 – Clarence

回答

0

也許是因爲你的HTML5應用和wcf服務的域名不一樣。試試看jsonp: What is JSONP all about? 希望能幫到你。

+0

我看到,作爲另一個類似的問題的答案,並簡單地嘗試過,但沒有得到任何東西......我希望有一個解決方案,我會有一個較短的學習曲線來實現。我沒有使用jsonp。 – Clarence