【问题标题】:JSONP - POST method in Sench Touch 2.1JSONP - Sench Touch 2.1 中的 POST 方法
【发布时间】:2013-06-20 11:41:31
【问题描述】:

使用 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...
            }
        });

我错了什么?

【问题讨论】:

  • 您不能将 POST 与 JSONP 一起使用。它使用<script>-tag 来执行 GET 请求..
  • 谢谢,罗伯。那么,我该如何解决呢?
  • 您可以查看Ext.Ajax,或者您可以使用 GET 并将您的 post_data 作为 URL 参数发送。
  • 我正在构建一个 Sencha Touch webapp。我尝试在没有本地主机服务的情况下使用 Ext.Ajax(method: "POST") 发布到我的域,但它有一个与浏览器策略安全性有关的问题 - Access-Control-Allow-Origin 错误 - 只需使用 jsonP 即可。那么,我可以使用哪种方式呢?
  • 您要么必须实现 CORS,要么只需要使用 GET 方法与您的 Web 服务进行通信。

标签: sencha-touch-2


【解决方案1】:

由于安全原因,您不能从浏览器调用任何网络服务,因此您必须在应用端使用 JSONP 代理,或者必须在服务器端启用 CORS。如果您打算将其构建为应用程序,那么您不必这样做,您所要做的就是在测试时更改浏览器的安全设置。更多细节在这里:How to use json proxy to access remote services during development

【讨论】:

    【解决方案2】:

    是的,它成功了! ^^ 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}
    
    
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 2012-09-05
      • 2012-05-05
      • 1970-01-01
      • 2013-07-30
      相关资源
      最近更新 更多