JSONP - Sencha Touch 2.1中的POST方法

时间:2013-06-18 08:57:47

标签: sencha-touch-2

使用GET方法,我很容易得到这个回应。但POST方法我不明白。

  Ext.data.JsonP.request({
            url: 'http://otherdomain/test_json_post',
            method: 'POST',
            type:'jsonp',    
            scope: this,    
            callbackkey: 'callback',
            success: function(result) {
                console.log(result);
                //Your success function here...
            }
        });

我错了什么?

2 个答案:

答案 0 :(得分:1)

由于安全原因,您无法从浏览器调用任何Web服务,因此您必须在应用程序端使用JSONP代理,或者必须在服务器端启用CORS。如果您计划将其构建为应用程序,则无需执行此操作,您只需在测试时更改浏览器的安全设置即可。更多详情:How to use json proxy to access remote services during development

答案 1 :(得分:0)

是的,它有效! ^^ Sencha Touch是一个客户端(移动Web应用程序)或构建它本地主机,它将具有CORS - 一个浏览器策略安全性 - 与您在其中使用ajax相关。所以,我通过添加2个代码行来配置我的PHP服务器中的所有api:

function yourAPI
{
    //CORS open
    header('Access-Control-Allow-Origin: *'); 
    header('Access-Control-Allow-Headers: X-Requested-With'); 
    ....
    {enter your code here}


}

感谢Rob的帮助!希望您有类似的问题修复错误成功。