2011-03-03 53 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