javascript - jQuery $.post 适用于 chrome、safari,但不适用于 FF(声明成功回调函数未定义)

标签 javascript jquery html firefox

我有以下 jQuery 1.7.2 代码:

var theParams = encodeURIComponent(s1)+encodeURIComponent(s2);
$.post('/myURL',theParams,processData).error(errorResponse);
function processData(data,textStatus){
    blah blah;
}// end processData
function errorResponse() {
    blah blah;
}

此代码在 Safari 6 (Mac)、Chrome 21 (Mac)、Safari (iPad)、Chrome (iPad)、 但 FF 14 (Mac) 给我以下错误:

ReferenceError: processData is not defined

奇怪的是,类似的代码(来自不同的页面)在 FF 上运行得很好:

var formData = $(form).serialize();
$.post('/myURL',formData,processData).error(errorResponse);
function processData(data,textStatus) {
    blah blah;
}// end processData
function errorResponse() {
    blah blah;
}

我尝试重命名该函数,但这会导致相同的未定义错误。我应该寻找什么来调试这个?

最佳答案

尝试重新排列代码

var processData, errorResponse, theParams;
processData = function (data,textStatus){
    //blah blah;
};
errorResponse = function () {
    //blah blah;
};
theParams = encodeURIComponent(s1)+encodeURIComponent(s2);
$.post('/myURL',theParams,processData).error(errorResponse);

这对你有用吗?

您能提供一下 encodeURIComponent 函数吗?

关于javascript - jQuery $.post 适用于 chrome、safari,但不适用于 FF(声明成功回调函数未定义),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12175216/

相关文章:

javascript - 按字母顺序然后数字顺序对对象值数组进行排序

javascript - jQuery .serialize() 用于发布?

javascript - 如何使用jQuery在指定点停止 float div

html - 如何在 Twitter Bootstrap 中更改轮播标题的宽度

javascript - 'items[i].label' 在我的代码中有什么作用?

javascript - JS : Why . 值在一种情况下有效,但在另一种情况下无效?

javascript - 我的样式表没有加载,但路径是正确的

Javascript:用于调用函数以更改文本区域的最佳事件?

php - javascript 大对象的最佳实践

jquery - Friendly_id gem 出现问题,尝试定位正确的 id 时出现问题