【发布时间】:2013-12-07 16:30:24
【问题描述】:
好的,经过一整天的努力,我似乎不知道这是怎么回事,所以就这样吧:
我现在有一个本地托管的 WebService (http://localhost:15021/Service1.svc/[whatever_method]) 和另一个文件上的 HTML 页面 .
仅供参考,WebService 和 HTML 页面都将托管在不同的服务器上。
我正在尝试通过 HTML 页面中的 onload=load() 方法从 WebService 获取一些信息到 HTML 页面。
我的 JavaScript 代码是:
function load() {
alert("Loading...");
$.ajax({
url: 'http://localhost:15021/Service1.svc/getAllNoticias',
type:'GET',
dataType: 'jsonp',
jsonp: 'loadNews_callBack'
});
}
function loadNews_callBack(result){
alert(result.data);
}
此外,JSONP 以 OK (200) 状态 (As you can see here) 加载到页面上,这应该(我猜)调用回调函数,但它不是。
我能做些什么来解决这个问题?我已经将请求参数更改了 500 次(例如,将“?callback=?添加到 url,有或没有 jsonp 属性等......)
任何帮助都会很棒,
提前致谢
【问题讨论】:
-
你想解决什么问题?回调实际上没有被调用吗?
-
*已编辑,抱歉。是的,回调函数没有被调用。
-
检查实际响应文本以验证响应是否被回调函数正确包装。您的服务可能未正确设置以处理 JSONP,因此它只是使用 JSON 进行响应。它仍然会返回 200,但无法执行。
-
您能否将服务返回的内容添加到您的帖子中?
-
哦..您说得对!它不是。现在它的定义是: [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "getAllNoticias")] 我应该如何定义它?我相信没有 ResponseFormat 等于 JSONP。
标签: javascript jquery ajax web-services jsonp