如何在EXT-JS中发送没有任何参数的GET请求

时间:2012-09-10 11:45:24

标签: extjs callback request script-tag

Java脚本中发送GET请求时,它不会添加任何参数,但在 EXT-JS 中,它会自动添加CallBack参数。 (我查看过Wireshark& firebug)

我们可以在Juniper MFC URL上的浏览器上看到xml,因为它发送了GET请求,但是当 REQUEST 与任何参数(如'callback parameter')一起发送时,浏览器显示404错误(acc到Firebug,浏览器和Wirehark)

所以我需要在修改后的加载函数中从 ScriptTagProxy,创建一个新的代理扩展。 请告诉我如何做到这一点。

我做了以下但没有运气。

        var _Proxy = Ext.extend(Ext.data.MyScriptTagProxy({
         url: 'http://IP:PORT/App',
         method: 'GET',
         nocache: false,
         restful: true 
         }); 

 Ext.define('Ext.data.MyScriptTagProxy' {   
 extend: 'Ext.data.ScriptTagProxy',
 constructor:function(cnfg){
 this.callParent(arguments);//Calling the parent class constructor
      this.initConfig(cnfg);//Initializing the component
      this.on('beforerender',this.beforeRender);
 }});

如果主题还有其他解决方案,请建议。

1 个答案:

答案 0 :(得分:0)

问题在于:为了使用JsonP(ScriptTagProxy),您的服务器需要将响应包装到javascript方法回调中并返回有效的JavaScript代码。任何其他格式都将失败,因为请求是使用<script>标记执行的,并且响应将由浏览器的JavaScript引擎解释。

此外,客户端需要能够将回调与原始请求相匹配 - 这就是ExtJs发送回调方法的名称的原因,该回调方法对于该特定请求是唯一的。

但在我们深入研究之前,您是否知道JsonP需要服务器相应地准备响应数据。您的服务器(Juniper MFC)是否支持此功能?

作为替代方案,您可以使用CORS作为JsonP的替代方法。此技术的侵入性较小,需要为服务器上的HTML文档配置特殊的HTTP标头配置。 ExtJs通过Ext.data.Connection#cors支持CORS