此文内的ajax回应如何用jsonp格式处理?


近期提交一份Firefox plugin的完整审核被驳回,其理由为:

In order to prevent unintended remote script injection, we cannot allow jQuery.ajax and related calls without an explicit jsonp: false parameter.

而插件内的ajax写法如下:


 $.ajax({
    url: "http://...",
    type: 'GET',
    dataType: 'html',
    success: function(data){
        var tmpTextNum1 = data.indexOf('resultConvertID');
        var tmpTextNum2 = data.indexOf('=', tmpTextNum1);
        var tmpTextNum3 = data.indexOf(';', tmpTextNum2);
        var convertId = data.substring((tmpTextNum2+2), (tmpTextNum3-1));
        //Do Other Things...
    }
});

服务端回应格式如下:

resultCode['1394634930046']="0";resultString['1394634930046']="success";resultConvertID['1394634930046']="795291";window.loadingScripts--;

jsonp: false应该要搭配jsonp的ajax使用吧?
但是此插件的服务端程式我不能更动,这样子的服务端回应要如何用jsonp的ajax?
或请问有无其他方法解决被驳回的问题?

恳请帮忙,谢谢大家。

jquery-ajax jquery Ajax JavaScript

死神的乌鸦 11 years, 4 months ago

你的datatype应该为jsonp格式

BinGor answered 11 years, 4 months ago

Your Answer