我想从其他网站调用Web服务,并使用Ajax调用在html页面中获取响应。
数据应该是网络服务的响应。 我已经尝试了很多,但我没有得到任何解决方案。我也越过了浏览器,当使用ajax请求调用webservice时就存在问题。
我的网络服务代码:
[ServiceContract]
public interface IService
{
[WebInvoke(Method = "GET",RequestFormat=WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
//[WebGet]
[OperationContract]
string GetData(string inputString);
}
It is implemented as:
public string GetData(string inputString)
{
return "myData";
}
Javascript code (From my other website):
<script type="text/javascript">
function click_btn() {
$.ajax({
type: "GET",
url: "http://192.168.15.213/MyService.svc/GetData/inputString=e",
contentType: "application/json",
success: function (jsonData) {
alert('Data: ' + jsonData);
`enter code here` },
Error: function (e) {
alert('err: ' + e);
}
});
return false;
}
</script>
当我从其他网站调用网络服务时,我收到错误404 method not allowed
。
答案 0 :(得分:0)
这是正确的,您无法从客户端上下文中执行来自不同域的请求。 但您可以做的是从您自己的服务器代码中获取外部网站上的数据,然后将其作为服务提供给您的客户端。实际上,通常您需要为来自外部源的数据提供一些上下文,因此无论如何您必须在将信息发送到客户端之前对其进行处理。
希望有所帮助