Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确地向Sencha Touch Ext.Ajax.request()添加“callback”参数?_Ajax_Jsonp_Sencha Touch - Fatal编程技术网

如何正确地向Sencha Touch Ext.Ajax.request()添加“callback”参数?

如何正确地向Sencha Touch Ext.Ajax.request()添加“callback”参数?,ajax,jsonp,sencha-touch,Ajax,Jsonp,Sencha Touch,我目前正在发送我的回调,如下所示 var submitCommunicateCard = function () { //display Loading indicator to user console.log(rpc.views.Contact.CommunicateCard.getValues()); Ext.Ajax.request({ url: WebService('GetInTouch', 'CommunicateCard'),

我目前正在发送我的回调,如下所示

var submitCommunicateCard = function () {
    //display Loading indicator to user
    console.log(rpc.views.Contact.CommunicateCard.getValues());
    Ext.Ajax.request({
        url: WebService('GetInTouch', 'CommunicateCard'),
        method: 'post',
        params: {
            callback: 'foo', // THIS SUCKS!!!
            name: 'Test Name'  
        }
    });
};
虽然这是可行的,但我更愿意让Sencha为我添加回调

我试过了,但没用


如何向Sencha Touch Ext.Ajax.request正确添加回调?

Ext.Ajax生成两种类型的请求后事件,requestcomplete和requestexception。您可以使用Ext.Ajax.onrequestcomplete、函数conn、响应、成功请求的选项,以及Ext.Ajax.onrequestexception、函数conn、响应、失败请求的选项。

答案是您不能


您必须使用Ext.util.JSONP.request

我不知道我是否理解这个问题。那么您正试图让Ext.Ajax在每个请求上添加相同的参数吗?不,如果您查看Ext.Data.store,会发现有一个参数类型:“scripttag”。当存储轮询外部web服务时,它会自动将callback=stcCallbackNNNN添加到POST数据中。通过这样做,web服务知道如何请求JSONP。我在表单提交方面也做了类似的事情,但是scriptTag:true似乎没有完成相同的任务。根据,此问题包含有效问题的所有部分,但仍然获得了否决票。有趣。现在不想做成功/失败响应,只是尝试将回调参数添加到POST请求。不起作用。未捕获的TypeError:无法读取未定义的属性“on”
var submitCommunicateCard = function () {
    //display Loading indicator to user
    console.log(rpc.views.Contact.CommunicateCard.getValues());
    Ext.Ajax.request({
        url: WebService('GetInTouch', 'CommunicateCard'),
        method: 'post',
        scriptTag: true,  //WHY DOESN'T THIS WORK?
        params: {
            name: 'Test Name'  
        }
    });
};