gpt4 book ai didi

JavaScript 没有按预期调用下一个函数

转载 作者:行者123 更新时间:2023-12-03 12:18:30 25 4
gpt4 key购买 nike

这让我陷入困境......我正在调用一个外部url(实际上有2个调用,一个用于数据的id,下一个调用是用于详细信息,我想要捕获的是来自第二次调用)在 map 上放置标记

这是从我的页面 body 元素中的 onload 事件调用的代码

var firstpass = true;

function getResults(zip) {
var zipi = parseInt(zip);
// or
// function getResults(lat, lng) {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
// submit a get request to the restful service zipSearch or locSearch.
url: "http://search.ams.usda.gov/farmersmarkets/v1/data.svc/zipSearch?zip=" + zipi,
// or
// url: "http://search.ams.usda.gov/farmersmarkets/v1/data.svc/locSearch?lat=" + lat + "&lng=" + lng,
dataType: 'jsonp',
jsonpCallback: 'searchResultsHandler'
});
}
//iterate through the JSON result object.

function searchResultsHandler(searchResults) {
for (var key in searchResults) {
var results = searchResults[key];
for (var i = 0; i < results.length; i++) {
var result = results[i];
for (var key in result) {
getDetails(result['id']);
}
}
}
}

function getDetails(id) {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
// submit a get request to the restful service mktDetail.
url: "http://search.ams.usda.gov/farmersmarkets/v1/data.svc/mktDetail?id=" + id,
dataType: 'jsonp',
jsonpCallback: 'detailResultHandler'
});)

//iterate through the JSON result object.
function detailResultHandler(detailresults) {
for (var key in detailresults) {
alert(key);
var results = detailresults[key];
alert(results['GoogleLink']);
var urlglink = (results["GoogleLink"]);
var loca = (urlglink.split("q=")[1]);

var lat = (loca.split("%2C%20")[0]);
var long = (loca.split("%2C%20")[1]);
var loc = (long.split("%20")[0]);
var latlong = lat + "," + loc;

var marker;
if (firstpass === true) {
var map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 10,
center: new google.maps.LatLng(latlong),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
firstpass = false;
}


var infowindow = new google.maps.InfoWindow();
marker = new google.maps.Marker({
position: new google.maps.LatLng(latlong),
map: map
});
}
}

最佳答案

Here ,它显示设置 jsonp: false:

Override the callback function name in a jsonp request. This value will be used instead of 'callback' in the 'callback=?' part of the query string in the url. So {jsonp:'onJSONPLoad'} would result in 'onJSONPLoad=?' passed to the server. As of jQuery 1.5, setting the jsonp option to false prevents jQuery from adding the "?callback" string to the URL or attempting to use "=?" for transformation. In this case, you should also explicitly set the jsonpCallback setting. For example, { jsonp: false, jsonpCallback: "callbackName" }

底部的示例以及以下部分:

...setting the jsonp option to false prevents jQuery from adding the "?callback" string to the URL or attempting to use "=?" for transformation"...

关于JavaScript 没有按预期调用下一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24556129/

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