如何通过jquery设置jsonp回调来检索restful web服务数据

发布于 2025-01-07 00:15:45 字数 648 浏览 1 评论 0原文

我问了一个关于 firebug 上无效标签的问题,当我尝试从我的 Restful Web 服务检索数据时会发生这种情况。我收到的大部分答案都是关于设置回调函数。但我似乎无法从中获得正确的果汁。你能告诉我一个具体的代码来说明如何做到这一点吗?或者至少更正此处的代码:

        type: "GET",
        cache: false, 
        contentType: "application/json; charset=utf-8",
        dataType: "jsonp",
        processdata:true,
        jsonp: false, jsonpCallback: "success",
        url: 'http://localhost:8732/Service1/data/10',

        success : function success(data) {
            jsonResponse = eval("(" + data + ")");
            alert(jsonResponse)
        },
        error : function(req,status, ex) {

            alert(ex);
        }

谢谢,

I have asked a question regarding invalid label on firebug which happens when I try to retrieve data from my restful web service. Most of the answers I received was about setting a callback function. but I can't seem to get the right juice from it. can you show me an exact code on how to do it? or atleast correct the code here:

        type: "GET",
        cache: false, 
        contentType: "application/json; charset=utf-8",
        dataType: "jsonp",
        processdata:true,
        jsonp: false, jsonpCallback: "success",
        url: 'http://localhost:8732/Service1/data/10',

        success : function success(data) {
            jsonResponse = eval("(" + data + ")");
            alert(jsonResponse)
        },
        error : function(req,status, ex) {

            alert(ex);
        }

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

征棹 2025-01-14 00:15:45

哇,你那里有很多不必要的东西。试试这个:

$.ajax({
    url: 'http://localhost:8732/Service1/data/10',
    dataType: 'jsonp',
    error: function(req, status, ex) {
        // your code here
    },
    success: function(data) {
        //your code here
        // Please note: you don't need to 'eval' the json response.
        // The 'data' variable will be loaded with the object that the json string represents.
        // By the way, don't use 'eval', ever.
    }
});

jQuery 将处理 url 上的回调。请参阅此处: http://api.jquery.com/jQuery.ajax/

更新
为什么是jsonp?如果您从 localhost 获取此信息,为什么不只是 json 呢?正如下面的评论中所讨论的,您的服务器当前无法执行 jsonp 响应,但它可以执行 json。

Wow, you've got a lot of unnecessary stuff there. Try this:

$.ajax({
    url: 'http://localhost:8732/Service1/data/10',
    dataType: 'jsonp',
    error: function(req, status, ex) {
        // your code here
    },
    success: function(data) {
        //your code here
        // Please note: you don't need to 'eval' the json response.
        // The 'data' variable will be loaded with the object that the json string represents.
        // By the way, don't use 'eval', ever.
    }
});

jQuery will take care of the callback on the url. See here: http://api.jquery.com/jQuery.ajax/

UPDATE
Why jsonp? If you're getting this from localhost, why not just json? As discussed in the comments below, your server currently is not capable of a jsonp response, but it can do json.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文