jsonp失败给了404

时间:2014-03-10 03:04:54

标签: jquery jsonp

根据我的理解,这会发生什么:

  1. jsonp只是将json包装在一个函数中。
  2. 使用jsonp时,必须指定(1)
  3. 中使用的函数的名称
  4. 以正常的josn
  5. 接收数据

    我的理解是对的吗?如果我错了,请纠正我

    如果我是正确的,为什么我的代码不起作用?我试图访问一个小的本地jsonp文件,但它给了我404

        (function ($) {
        var url = 'dummy.jsonp?callback=?';
    
        $.ajax({
            type: 'GET',
            url: url,
            async: false,
            jsonpCallback: 'wrapper',
            contentType: "application/json",
            dataType: 'jsonp',
            success: function (json) {
                alert(json);
            },
            error: function (e) {
                console.log(e.message);
            }
        });
    
    })(jQuery);
    

    dummy.jsonp:

    wrapper([
       {
          "id":1,
          "name":"clark"
       },
       {
          "id":2,
          "description":"Kent"
       }
    ])
    

    编辑: 结果是@xdazz是对的,当我在公共服务器上传文件时,它被正常访问 但现在我如何解决这个问题与相对路径一起工作?这个页面和dummy.jsonp都在同一个文件夹中

    我做错了什么?

1 个答案:

答案 0 :(得分:0)

正如您的服务器响应看起来那样。您应该在客户端使用wrapper()方法。

在客户端代码

中添加此类功能
function wrapper(data)
{
  alert(data[0].id);
 }


(function ($) {
var url = 'dummy.jsonp?callback=?';

$.ajax({
    type: 'GET',
    url: url,
    dataType: 'jsonp',
    success: function (json) {
        alert(json);
    },
    error: function (e) {
        console.log(e.message);
    }
});

})(jQuery);