我不太了解如何使用jQuery的ajax函数的回调。
我在JavaScript中有以下代码:
try { $.ajax({ url: 'http://url.of.my.server/submit?callback=?', cache: false, type: 'POST', data: $("#survey").serialize(), dataType: "jsonp", timeout: 200, crossDomain: true, jsonp: 'jsonp_callback', success: function (data, status) { mySurvey.closePopup(); }, error: function (xOptions, textStatus) { mySurvey.closePopup(); } }); } catch (err) { mySurvey.closePopup(); }
在服务器端(AppEngine / Python),我获取了回调参数的值并使用
self.response.headers['Content-Type'] = 'application/json; charset=utf-8' self.response.out.write(callback + '({"msg": "ok"});')
但是随后我"Error: jQuery152042227689944248825_1317400799214 is not a function"在浏览器控制台中看到了。
"Error: jQuery152042227689944248825_1317400799214 is not a function"
处理此问题的正确方法是什么?现在,我得到了所需的结果,但是我知道这不正确的事实困扰着我。
这就是我在我身上所做的
$(document).ready(function() { if ($('#userForm').valid()) { var formData = $("#userForm").serializeArray(); $.ajax({ url: 'http://www.example.com/user/' + $('#Id').val() + '?callback=?', type: "GET", data: formData, dataType: "jsonp", jsonpCallback: "localJsonpCallback" }); }); function localJsonpCallback(json) { if (!json.Error) { $('#resultForm').submit(); } else { $('#loading').hide(); $('#userForm').show(); alert(json.Message); } }