gpt4 book ai didi

javascript - 如何在 Google Chrome 扩展中使用 jQuery ajax?

转载 作者:行者123 更新时间:2023-12-02 18:14:31 27 4
gpt4 key购买 nike

我编写了一个通过 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;
});

它对我来说工作得很好。但是当我在 Google Chrome 扩展中使用时,它不起作用,发生错误:-我们不能使用 jquery Ajax 调用,他们建议使用 xmlhttprequest。但我不知道如何将此代码转换为 XMLhttpRequest。所以请建议我。

谢谢

最佳答案

由于返回的是 JSONP,因此看起来 dizainstore 正在使用 RESTful API,并希望您通过脚本注入(inject)使用 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 );

});

关于javascript - 如何在 Google Chrome 扩展中使用 jQuery ajax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19419479/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com