AJAX请求返回Javascript不会返回特定函数但会返回其他函数

时间:2016-04-08 23:57:21

标签: javascript jquery ajax

所以我是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时才会遇到此问题。如果这还不够,请告诉我,这是我在这里的第一篇文章。

提前致谢,

威尔

1 个答案:

答案 0 :(得分:-1)

看来你在这里混淆了一下。当您使用ajax在服务器上请求某些内容时,浏览器会将服务器返回的代码作为字符串(您的响应变量)获取。如果您的PHP发出有效的Javascript函数,那并不意味着它已准备好执行。

首先尝试使用console.log()响应并查看服务器的回复是否符合您的预期。

如果您想要执行代码,请使用eval()eval(response)来完成工作。 eval()接受带有javascript代码的字符串并执行它。

请记住,eval是邪恶的,通常从PHP返回javascript代码是一个糟糕的设计选择,特别是如果你想要eval()它。