猿问

Chrome插件开发,使用JSONP跨域请求,回调函数未定义?

先附上代码:


插件代码片段:


    $.getJSON("http://crazywe.sinaapp.com/orderprice?callback=?", function(data){ 

            alert("test");

    }); 

manifest.json 片段:


    "content_scripts": [

        {

            "css": ["css/iwlw.css"],

            "matches": ["http://*/*","https://*/*"],

            "js": ["js/jquery-2.1.1.min.js","js/anpai.js"]

        }

    ],

    "permissions": [

        "tabs",

        "http://*/*",

        "https://*/*"

    ]

后台java代码:


        resp.setContentType("text/javascript");

        resp.setHeader("Access-Control-Allow-Origin", "*");

        PrintWriter out = resp.getWriter();

        out.println(req.getParameter("callback") + "(" + resultJSON.toString() + ");");

        //out.println("orderpriceforanpai(" + resultJSON.toString() + ")");

        out.flush();

        out.close();

现在本地调试没有问题,但是把jsonp的代码封装到chrome插件之后报错如下:is not defined

是在解决不了,求大神点解!!!

交互式爱情
浏览 1143回答 2
2回答

小怪兽爱吃肉

感觉chrome插件完全可以跨域的情况下,完全用不上jsonp

摇曳的蔷薇

你这个jsonp失败大概是因为chrome扩展的内容安全策略简单来后,就是不允许使用跨站脚本,不幸的是这正是jsonp的执行基础。事实上,你这扩展画蛇添足的地方太多了首先,chrome扩展完全不需要jsonp这么个东西,你直接请求json就行了。其次"permissions": [        "http://*/*",        "https://*/*"    ]和resp.setHeader("Access-Control-Allow-Origin", "*");你两个只要使用了一种xhr就能直接跨站了,别的都不需要。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答