ajax - Extjs 调用 RESTful Web 服务

标签 ajax web-services extjs rest

我正在尝试使用 Extjs 进行 RESTful Web 服务调用。下面是我正在使用的代码:

Ext.Ajax.request({ url: incomingURL ,
   method: 'POST',
   params: {param1:p1, param2:p2},
   success: function(responseObject){
     var obj = Ext.decode(responseObject.responseText);
     alert(obj);
   },
   failure: function(responseObject){
     var obj = Ext.decode(responseObject.responseText);
     alert(obj);
   }
});

但是不起作用,请求是使用 OPTIONS 方法而不是 POST 发送的。

我也尝试使用下面的代码做同样的事情,但结果是相同的:

var conn = new Ext.data.Connection();
conn.request({
  url: incomingURL,
  method: 'POST',
  params: {param1:p1, param2:p2},
  success: function(responseObject) 
  {
    Ext.Msg.alert('Status', 'success');
  },
  failure: function(responseObject) 
  {
    Ext.Msg.alert('Status', 'Failure');
  }
});

但是当我尝试使用基本的 ajax 调用(直接使用浏览器对象,即 XMLHttpRequest() 或 ActiveXObject("Microsoft.XMLHTTP"))执行相同的操作时,它工作正常,并且我得到了预期的响应。

任何人都可以帮助我,因为我无法理解我在 extjs ajax 调用中做错了什么?

最佳答案

您无法在域之间进行标准 AJAX 调用。 Ext.Ajax.request 的 URL 应该是一个相对 URL(相对于脚本的来源)。

如果你想进行跨域调用,请使用 ScriptTagProxy 等。

关于ajax - Extjs 调用 RESTful Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1826671/

相关文章:

android - 使用Sencha CMD 6.5 生成的App Android 的CORS 发出POST 请求(403 Forbidden)

php - 使用自己的 API 时防止无限 AJAX 循环

javascript - 如何使用 sencha archer 4 和 extjs 6 进行动态本地化?

javascript - 如何使用 AJAX 读取直播数据

c# - 将私有(private) VPN 中托管的服务引用添加到我的项目

javascript - json Web 服务从动态参数名称获取值

c# - 普通 .NET Web 服务应用程序中 HTTP session 状态的替代方案

extjs - 比较企业应用程序的 Web GUI 框架

Javascript 函数不等待 AJAX 响应

javascript - 指定/更改主干集合的端口以指向 couchdb 服务器