gpt4 book ai didi

javascript - 使用 jQuery,从 json 可能格式不正确的跨域 url 访问 json

转载 作者:搜寻专家 更新时间:2023-11-01 04:21:09 26 4
gpt4 key购买 nike

我正在使用 jQuery 的 ajax 函数来访问跨域 url。该 url 将返回 json。我正处于发现阶段,但我认为,因为 json 值包含几个“"”字符串,所以 json eval 会抛出错误并停止执行我的客户端脚本。我得到的错误是“未终止的字符串文字”。我知道如果我通过将返回的 json 放在本地 div 中并删除 '"' 来对返回的 json 进行硬编码字符串(和几个隐藏的特殊字符),我可以让 json 成功评估。无论是通过解决方法,还是通过更正我的代码,我该怎么做才能从 url 获取 json 并将其作为有效的 json 对象存储在我的客户端 javascript 中?

我当前的代码。没有定义的函数(成功、完成、错误、dataFilter)执行:

$(function() {
$.ajax({
url: "http://www.codemash.org/rest/sessions.json?format=jsonp&callback=?",
dataType: "jsonp",
success: successFunc,
complete: completeFunc,
error: errorFunc,
dataFilter: dataFilterFunc
});

});

function successFunc() { console.log('successFunc(). enter.'); }
function completeFunc() { console.log('complete(). enter.'); }
function errorFunc() { console.log('errorFunc(). enter.'); }
function dataFilterFunc(data, type) {
data.replace(/\W/g, ' ');
return data;
}

最佳答案

问题出在 JSONP 服务上,它完全忽略了 callback 参数。

A JSONP response 只是一个使用 callback get 参数作为函数名称的函数调用:

如果你看一些 JSONP 服务的响应,它应该是这样的:

http://somesite.com/jsonp?callback= 我的回调

会返回:

myCallback({/*json*/});

虽然那个you post返回plain valid JSON,但它不能作为 JSONP 响应处理。

关于javascript - 使用 jQuery,从 json 可能格式不正确的跨域 url 访问 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1811505/

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