datatype未定义是什么意思_jQuery的dataFilter响应未定义

I am fetching data from an external api via jsonp with jQuery.ajax().

this is my ajax setup:

var ajax_options = {

dataType: 'jsonp',

jsonp: 'callback',

url: url,

data: parameters,

success: function (response) {

console.log(response); // works, prints the correct data

},

dataFilter: function (response, type) {

console.log(response); // prints undefined

console.log(type); //prints "jsonp"

}

};

$.ajax(ajax_options);

I want to use the dataFilter function to preprocess my response for error handling. But the response argument of this function is always undefined. In the success function however, I get the correct response data.

Do you know what might be the problem?

解决方案

I can verify that this issue is a pain in the arse. What needs to be done is to use $.ajaxSetup({}); along with the converters:

$.ajaxSetup

Then, you'll need to use Converters to handle your dataType, dataFilters, callbacks, and parsing.

jQuery.Extensions - Converters

While you don't have to use Converters via $.ajaxSetup -

$.ajax({ converters: 'params go here' });

Because of the scenario you're facing, all data that is passed as your jsonp needs to have this converter applied to it. This should provide you with a more realistic control based on your expected result type and needs.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值