AJAX请求返回Javascript获胜't返回特定函数,但将返回其他函数
AJAX request returning Javascript won't return a particular function but will return others
所以我是Javascript的新手,所以这可能是一个简单的修复。。。我想做的是返回一些PHP生成的Javascript,如下所示:
$.ajax({
type: 'GET',
dataType: 'script',
url: "process.php?q=" + nextOne,
cache: false,
success: function(result) {
var points = poly();
var view = view();
console.log(poly());
}
});
在GET函数上执行的PHP代码每次都成功地返回以下代码:
function poly() { var polygon = [ [44.0979657883536, -77.59741353683408], [44.09800110003289, -77.59742583167298], [44.0980628953913, -77.59745042091538], [44.09809820673028, -77.59747500869589], [44.09815117444222, -77.59748730467579], [44.09818648579019, -77.59751189254636], [44.09824828154319, -77.59752418914519], [44.09830124890875, -77.59754877818678], [44.09836304401723, -77.59758566057246], [44.09844249510888, -77.59762254440908], [44.09855725698249, -77.5977086026865], [44.09863670785234, -77.59775778001215], [44.0988132654151, -77.5978684291988], [44.09899865055464, -77.59800366685273], [44.099157552135, -77.59812661066638], [44.09925465878388, -77.59820037721019], [44.09930762506249, -77.59827414098369], [44.09936059135786, -77.59834790500194], [44.09938707375796, -77.59840937369948], [44.09942238393646, -77.59848313660127], [44.09944886554787, -77.59856919181473], [44.09946651905435, -77.59865524685266], [44.09946651545066, -77.59876588717155], [44.09946651258768, -77.59885194044027], [44.09946651051048, -77.59891340743259], [44.09946650840645, -77.59897487447928], [44.09944884869306, -77.59907322011854], [44.09942235991026, -77.59919615139923], [44.09936938613104, -77.59933137393786], [44.09929875346595, -77.59952806157649], [44.09922812091607, -77.59971245627803], [44.0991398332644, -77.59985996814586], [44.09907803141549, -77.59997060283777], [44.09901623062632, -77.60005665047542], [44.09893677444724, -77.60011810902354], [44.09889263256964, -77.60014269102098], [44.0988396637248, -77.60014268500156], [44.09879552299976, -77.60014268001041], [44.09875138228544, -77.60014267504206], [44.0986984140636, -77.6001303756445], [44.09864544644561, -77.60010578285841], [44.09859247938493, -77.60006889673586], [44.09850420107129, -77.60000742014995], [44.09846006278729, -77.5999582419273], [44.09834530251719, -77.59984758986654], [44.09823054177884, -77.59974923232423], [44.0980892979686, -77.59962628606064], [44.09794805423672, -77.59950334086375], [44.09781563809948, -77.59939269104248], [44.09773618821324, -77.59933121854448], [44.09762142489915, -77.5992943294499], [44.09755080027261, -77.59929432346378], [44.09746251947693, -77.5992943160516], [44.09738306614857, -77.59930660246103], [44.09725064310649, -77.59934347054637], [44.09714470420811, -77.59938034083626], [44.09691516732349, -77.59950325144526], [44.09665031521845, -77.59966303842049], [44.09636780340659, -77.59985970230275], [44.09595286215229, -77.60013011364448], [44.09589106224593, -77.60016698752585], [44.0958734066763, -77.60015469320798], [44.09582926644982, -77.60014239682909], [44.09579395667541, -77.60009322247899], [44.09576747595455, -77.60003175602542], [44.09574099598146, -77.59995799683112], [44.0957056861353, -77.59990882281723], [44.09567037856668, -77.5998227708729], [44.09562624284954, -77.59973671809175], [44.09553796880017, -77.59960149149188], [44.09547617706166, -77.59950314546113], [44.0953349446695, -77.59917123462215], [44.09529964265098, -77.59897455110928], [44.09525551601103, -77.59870411256358], [44.09524670194121, -77.59842138462815], [44.09524671692267, -77.59810178086126], [44.09524673176193, -77.59775759351884], [44.09524674479974, -77.59742569960808], [44.09525558357575, -77.59713068427324], [44.09529090391865, -77.59689713179387], [44.09530856957198, -77.59657753331807], [44.09530857256068, -77.59646690312057], [44.09530857478986, -77.59638085751901], [44.09530857602622, -77.59633168850351] ]; return polygon; } function view() { var view = [-44.097102112991, 77.59840744055]; return view; }
很抱歉这太混乱了,但这是生成的代码。因此,当执行此操作时,view();
函数将正常工作。然而,poly函数不起作用。Safari一直给我这个错误:
ReferenceError:找不到变量:poly
我尝试过将所有的结果代码粘贴到我的网页中,它是有效的,但只有在使用AJAX时我才会遇到这个问题。如果这还不够,请告诉我,这是我在这里的第一篇帖子。
提前感谢
是否
如果poly()函数在.php文件中,则不会从调用.js文件中引用它。您可以做的是研究在网络上发送JSON数据。因此,PHP文件将呈现JSON&然后使用JSON.parse()将其转换回JS对象。
PHP会输出这样的东西:
{[44.0979657883536, -77.59741353683408], [44.09800110003289, -77.59742583167298], ...}
JavaScript文件将其读取到数据变量&转换为:
var obj = JSON.parse(data);
然后你的代码可能看起来像这样:
$.ajax({
type: 'GET',
dataType: 'json',
url: "process.php?q=" + nextOne,
cache: false,
success: function(result) {
var points = JSON.parse(result);
console.log(points);
}
});
这里看起来有些混乱。当您使用ajax在服务器上请求某个内容时,浏览器会将服务器返回的代码作为字符串(您的响应变量)。如果你的PHP发出了一个有效的Javascript函数,这并不意味着它已经准备好执行了。
首先尝试console.log()响应,看看来自服务器的回复是否符合您的期望。
如果你想执行代码,那么使用eval()eval(response)应该完成这项工作。eval()获取一个带有javascript代码的字符串并执行它
请记住,eval是邪恶的,通常从PHP返回javascript代码是一个糟糕的设计选择,尤其是如果你想对其进行eval()
- 使用返回函数sinde.attr()jquery元素
- 从自执行函数返回函数的Javascript性能命中率
- Node Express Handlebars帮助程序未返回函数的结果
- 未在Firefox中执行PageMethod的返回函数
- 对返回函数的函数感到困惑
- 从承诺返回不返回函数会导致警告
- 从函数返回函数而不调用返回的函数
- Javascript,闭包中的返回函数如何与外部函数连接
- 为什么Coderbyte.com's的Javascript模板喜欢返回函数的原始参数
- 对象函数返回函数而不是值
- 从外部函数(数组)了解返回函数(x)
- 从Javascript类对象返回函数
- 调用Typescript setter don't返回函数,尽管关联的getter可以工作
- 使用依赖注入在 JavaScript 中返回函数
- 通过单击JSP和javascript加载两个返回函数
- 需要说明:无法理解返回函数的javascript
- 简单的onClick返回函数不起作用
- 为什么这个闭包返回函数
- JS函数返回函数供以后使用-未定义参数
- Coffeescription类中的方法返回函数而不是字符串