Skip to main content
 首页 » 编程设计

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

2024年02月06日3398°冷暖

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

我的问题是,如果没有回传,我该如何做到这一点?因为我只是想检索数据而不是输入或操作它。

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

请您参考如下方法:

创建一个 ashx 处理程序,它根据 ajax 传递的参数查询远程服务。
对 ashx 处理程序使用 ajax 请求以通过 jQuery AJAX 调用您的代理。

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

或者如果网络服务支持 JSONP,你可以使用 JSONP直接。

如果您需要自己创建代理,方法如下:
http://www.codeproject.com/Articles/25218/Fast-Scalable-Streaming-AJAX-Proxy-continuously-de