2011-03-03 73 views
0

我有一個名爲(WS_Service)的Web服務項目 我有一個嘗試使用WS_Service的HTML頁面。如何從HTML頁面使用Web服務(自己的項目)

我有Web服務坐在自己的項目(我所創建的原因是因爲它的independednt,可以從的.aspx或.html或移動被稱爲)

我沒有用的.aspx的問題,我有隻需添加參考並啓動服務。

,但我不知道我怎麼會html的網頁上做下面是我的代碼我試圖發佈到Web服務:

$.ajax({ 
     type: "POST", 
     url: "http://myhostname/Delete.asmx/DeleteCustomer", <<< is that right? 
     data: "{CustID: " + parseInt(customer_id) + "}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
        AjaxSucceeded(msg); 
       }, 
     error: AjaxFailed 
}); 

任何suggustions?

+1

這段代碼有什麼問題?你有錯誤嗎?你期望發生什麼,實際結果是什麼? – roryf 2011-03-03 15:46:55

+0

好的,這裏是我得到的提琴手:學校_ws的DNS查找失敗。沒有這樣的主機是已知的 – 2011-03-03 18:00:10

回答

0

首先,您不能使用AJAX POST到另一個域上的表單。所以,當Javascript在domain2.com上運行時,確保你沒有嘗試POST到domain1.com。

假設他們都在同一個域,你是相當接近的,但如果你想張貼JSON來使用jQuery我只想做這樣的事情:

var data = { 
    CustID: parseInt(customer_id) 
}; 

$.post("http://myhostname/Delete.asmx/DeleteCustomer", {data: JSON.stringify(data)}, function(response) { 
    //success 
}); 

將通過您的JSONified發對象在一個名爲data的POST變量的東西的服務器端。

不要試圖自己在一個字符串中構建JSON,如果你開始發送複雜的數據,這將變得非常混亂。這就是爲什麼他們發明了JSON函數。 $.post只是一個$.ajax的快捷方式,一些默認的東西已經配置好了,應該可以使用。如果您確實需要捕獲AJAX錯誤(如HTTP狀態代碼),請參閱$.ajaxError作爲補充。

您可以在您的網頁一個簡單的JSON兼容性腳本如果要支持不具備的JSON.stringify和JSON.parse功能舊版瀏覽器,像https://github.com/douglascrockford/JSON-js

+0

沒有必要調用JSON.stringify,因爲jQuery將爲您做到這一點。 – Pointy 2011-03-03 16:00:30

+0

都在同一個域上,好吧我試圖發佈沒有得到任何東西,如何做到成功或失敗? – 2011-03-03 16:14:59

+0

@Pointy哦,我沒有意識到這一點。我想如果你傳遞了一個對象,jQuery會將它變成POST變量,而不是JSON字符串? – 2011-03-03 16:23:34

0

我強烈懷疑這條線:

data: "{CustID: " + parseInt(customer_id) + "}", 

應該包括的對象,而不是字符串:

data: { CustID: customer_id }, 

或可能:

data: { CustID: parseInt(customer_id, 10) }, 
+0

是的,我的解釋是他們試圖自己建立一個JSON字符串。 – 2011-03-03 15:52:08

+0

我不知道如果我是正確的,但如果你去看api文檔,它說它可以使用字符串,因爲它發送時實際上默認情況下會被更改:「數據選項可以包含查詢字符串表單key1 = value1&key2 = value2,或形式爲{key1:'value1',key2:'value2'}的地圖。「http://api.jquery.com/jQuery.ajax/ – 2011-03-03 15:56:34

+0

@ TBohnen.jnr yes但是OP中有什麼是**不是**查詢字符串。 – Pointy 2011-03-03 15:59:36

相關問題