如何在Google Chrome Extensions中使用jQuery ajax

How to use jQuery ajax in Google Chrome Extensions?

本文关键字:jQuery ajax Extensions Google Chrome      更新时间:2023-09-26

我写了一个代码,用于通过JSONP调用(基于jQuery)从另一个服务器获取数据,请查看下面的代码....

    $("#submit").click(function() {
var state=$("#state").val();
var city=$("#city").val();
         $.ajax({
             type: "GET",
             url: "http://www.dizainstore.com/chrome/info.php",
             async: true,
             data: "state="+ state+ "&city="+ city,
             dataType: 'jsonp',
              success: function(response) {
                  var centres=response.centres_info.centre;
                  var address=response.centres_info.address;
                  var val ;
                  var val1 ;
                  var und
                  $.each(centres, function(i,cent){
            val += "<div class='box2-l'>" + cent + "</div><div class='box2-r'>" + address[i] + "</div>" ;
                 });
              var new_val = "<div class='box1'><div class='box1-l'>Center List</div><div class='box1-r'>Address List</div>"+val+"</div>"
                  $(".result1").html(new_val);
                               }
         });
         return false;
     });

但是当我在谷歌浏览器扩展中使用时,它不起作用,发生了错误:- 我们不能使用 jquery Ajax 调用,他们建议 xmlhttprequest。但是我不知道如何将这段代码转换为XMLhttpRequest。所以请建议我。

谢谢

由于返回的是 JSONP,因此 dizainstore 似乎正在使用 RESTful API,并希望您将 JSONP 与脚本注入一起使用:

http://en.wikipedia.org/wiki/JSONP#Script_element_injection

您的代码将如下所示:

function handleDizain(response)
{
    var centres=response.centres_info.centre;
    var address=response.centres_info.address;
    var val ;
    var val1 ;
    var und
    $.each(centres, function(i,cent){
            val += "<div class='box2-l'>" + cent + "</div><div class='box2-r'>" + address[i] + "</div>" ;
    });
    var new_val = "<div class='box1'><div class='box1-l'>Center List</div><div class='box1-r'>Address List</div>"+val+"</div>"
    $(".result1").html(new_val);
}
$("#submit").click(function() {
        var state=$("#state").val();
        var city=$("#city").val();
        //Create a new script tag
        var loader = document.createElement( "script" );
        loader.setAttribute( "type", "text/javascript" );
        //Set the source
        loader.src = "http://www.dizainstore.com/chrome/info.php?state=" + state + "&city=" + city + "&callback=handleDizain";
        //Add it to the body
        document.body.appendChild( loader );
    });
如果您想在Chrome

扩展程序中进行跨域调用,则不必使用JSONP。您只需使用 Chrome 扩展程序跨源权限即可:http://developer.chrome.com/extensions/xhr.html

问候乌迪