我在一個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>
你有沒有試過用Fiddler2這樣的測試工具打你的服務?這也將跟蹤傳出的請求和服務器響應,以便您可以查看它是否僅僅是找不到該服務。你是否從與你的網站相同的項目運行你的服務? –
不,它們在同一臺機器上,但有兩個不同的項目可以模擬從一個位置到另一個位置的呼叫。我聽說過很多關於小提琴手的事,但從來沒有用過......每一樣東西都有第一。 – Clarence