在不使用回发的情况下调用Web服务

时间:2014-07-21 12:24:24

标签: c# asp.net ajax asp.net-mvc web-services

我需要通过asp.net应用程序中的页面调用跨域Web服务(.asmx)。用户将键入应用程序将发送到Web服务的搜索查询,然后将使用数据更新页面。

我的问题是如何在没有回发的情况下这样做?因为我只是想检索数据而不是输入或操纵它。

我的尝试解决方案:
1. Ajax通过jquery - >问题:不支持CORS 2. serviceReference(用于客户端服务调用)但这仅适用于本地(在域上)服务
3.最后我尝试使用updatepanel,其中文本框中的值用于查询Web服务,但这显然是强制部分回发,有没有办法让更新面板使用get req?如果没有,我怎么可能这样做因为我被卡住了!最后,如果ASP MVC结构,这个解决方案会更容易吗?我在学习。谢谢。

1 个答案:

答案 0 :(得分:4)

创建一个ashx处理程序,根据ajax传递的参数查询远程服务 使用对ashx处理程序的ajax-request来通过jQuery AJAX调用你的代理。

或者只使用Yahoo YQL代理:
Is there a free JSON proxy server which supports CORS or JSONP?

或者,如果Web服务支持JSONP,您可以直接使用JSONP

如果您需要自己创建代理,请按以下步骤操作:
http://www.codeproject.com/Articles/25218/Fast-Scalable-Streaming-AJAX-Proxy-continuously-de