gpt4 book ai didi

javascript - 从 javascript 代码使用 jsonp

转载 作者:行者123 更新时间:2023-11-29 17:23:17 25 4
gpt4 key购买 nike

我正在研究 javascript 和 json,我需要从另一台服务器获取我的 json 文件。我已经完成了一些使用本地 json 文件的 javascript 测试,但现在我想将我的所有代码转换为 jsonp,因为我需要处理另一个域中的文件。我的代码是:

function jsonEntity()
{
var richiestaEntity = new XMLHttpRequest();

richiestaEntity.onreadystatechange = function()
{
if(richiestaEntity.readyState == 4)
{
var objectentityjson = {};
window.arrayEntity= []; //creazione dell'array che conterrà le entity
objectentityjson = JSON.parse(richiestaEntity.responseText);

arrayEntita = objectentityjson.cards;

return arrayEntita;
}
}
richiestaEntity.open("GET", "myjson.json", true);
richiestaEntity.send(null);
}

如何在不丢失代码结构的情况下使用 jsonp 而不是本地 json?

最佳答案

JSONP 和 JSON 在幕后的工作方式根本不同。有关详细信息,请参阅 my other Stack Overflow answer .

由于 JSONP 的工作方式,您需要服务器的合作以将 JSON 响应包装在函数调用中(其名称通常由 callback 指定)获取参数);

/get_jsonp.php?callback=foo

(应该)得到:

foo({
"foo": "bar"
});

...在响应中。

假设您已获得合作,您可以按如下方式更改现有功能;

function jsonEntity()
{
var callbackName = "ajaxCallback";
var script = document.createElement("script");

// This bit needs the cooperation of the server,
// otherwise `ajaxCallback` won't be called.
script.src = "myjson.json?callback=" + callbackName;

window[callbackName] = function (obj) {
window.arrayEntity = obj.cards;
}

document.body.appendChild(script);
}

关于javascript - 从 javascript 代码使用 jsonp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11204144/

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