您好,感谢您抽出宝贵的时间来查看此内容。
我遇到的问题是来自第三方服务的 JSON 返回,因此我无法控制 JSON 的格式。我正在使用以下内容(精简到重要部分)
function JSONgrabber(Zip,iplocation)
{
var requestBase ="http://www.someCompany.com/api/request";
var requestData ="iplocate=true&output=json&callback=useJSON";
var request=requestBase+"&&zip="+Zip+"&"+requestData;
if(iplocation ==false || iplocation=="false")
{
request=request.replace("iplocate=true","iplocate=false");
}
if (document.getElementById("JSONDataMaster"))
{
var element = document.getElementById("JSONDataMaster");
element.parentNode.removeChild(element);
}
try{
var head = document.getElementsByTagName("head").item(0);
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("src", request);
script.setAttribute("id", "JSONDataMaster");
head.appendChild(script);
}
catch(err){console.log("Problem loading JSON Data");}
}
function useJSON(JSONDATA){}
这在 99% 的时间里都像预期的那样有效,但有时回报类似于
Joe's Diner 和 ' 导致 Uncaught SyntaxError: Unexpected identifier,这发生在返回期间,因此我无法通过替换等使用它来修复它,因为它永远不会到达回调函数。
非常感谢任何见解。我没有使用任何外部库(jquery 等),所以请任何帮助都必须是纯 JS(也许是 php)