【问题标题】:JSONP request callbackJSONP 请求回调
【发布时间】: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


【解决方案1】:

检查实际的响应文本以验证响应是否被回调函数正确包装。您的服务可能未正确设置以处理 JSONP,因此它只是使用 JSON 进行响应。它仍然会返回 200,但无法执行。

loadNews_callBack([json...])

[json...]

将此问题作为有关如何更新服务的参考: ASP.net MVC returning JSONP

【讨论】:

    猜你喜欢
    • 2017-12-30
    • 2015-06-22
    • 2015-03-11
    • 2013-10-17
    • 2023-03-08
    • 2012-02-14
    • 2017-09-28
    • 2011-09-27
    • 2011-12-15
    相关资源
    最近更新 更多