首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONP跨域GET请求不能跨域工作

JSONP跨域GET请求不能跨域工作
EN

Stack Overflow用户
提问于 2013-03-09 07:34:05
回答 1查看 433关注 0票数 0

好了,我尝试使用jsonp进行跨域ajax webservice调用,以返回一个类别列表来填充一个下拉列表,并且得到了奇怪的结果。我遵循了尽可能多的示例,并在我的域上运行jsonp请求,但它在其他域上不起作用。

代码如下:

代码语言:javascript
复制
  function parseJSON(item){
    return   JSON.parse(item, function (key, value) {
                    var type;
                    if (value && typeof value === 'object') {
                        type = value.type;
                        if (typeof type === 'string' && typeof window[type] === 'function') {
                            return new (window[type])(value);
                        }
                    }
                    return value;
                });
    };


    function getCategories() {
        var webserviceURL = 'http://www.theprintersinc.co.uk/TPIWS.asmx/getCategories';
        var myData;

        $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: webserviceURL,
            data: { galleryGuid: 1 },
            dataType: "jsonp",
            complete: function (msg) {
                if (msg) {

                var myObject = parseJSON(msg.responseText);
                var myCatList = parseJSON(myObject.d);

                        if (myCatList) {
                             catList = myCatList;
                             setCatDDL();
                        };
                };
                //reset close button
             },
            error: function (xhr, ajaxOptions, thrownError) {
                var err = "err";
            }
         });

    };

你可以在http://www.theprintersinc.co.uk/stackHelp.html上看到这在我的域上工作,但是当我尝试在我的pc或其他服务器上从一个简单的html文件运行这段代码时,它不工作。我只是从jbug中得到一个语法错误。

任何和所有的帮助都是非常感谢提前!

尼克

EN

回答 1

Stack Overflow用户

发布于 2013-03-25 01:31:20

我不是专家,但是您可以考虑jquery文档中关于“同源策略”限制的规定:http://api.jquery.com/jQuery.getJSON/

“附加说明:由于浏览器安全限制,大多数"Ajax”请求受同源策略的约束;请求不能成功地从不同的域、子域或协议检索数据。脚本和JSONP请求不受同源策略限制的约束。“

要使用JSONP,你应该添加callback=?添加到您的URL。在同一个jquery文档中,有一个示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15305139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档