EXTJS 4.2 资料 跨域的问题
关于跨域,在项目开发中难免会遇到;之前笔者是用EXTJS3.0开发项目的,在开发过程中遇到了关于跨域的问题,但是在网上找到资料大部分都是ExtJs4.0以上版本的
在ExtJs中 例如:Ext.Ajax.request,这是我们常用的数据请求的方式,如下代码:
Ext.Ajax.request({ url: 'ServiceAPIORM.ashx?API=Save', params: { name: '张三' }, method: 'POST', success: function (req) { alert("成功"); alert(req.responseText); }, failure: function (req) { alert(req.responseText); }, });
但是改写成跨域:
Ext.Ajax.request({ url: 'http://localhost:3722/ServiceAPIORM.ashx?API=Save',//跨域链接 params: { name: '张三' }, method: 'POST', success: function (req) { alert("成功"); alert(req.responseText); }, failure: function (req) { alert(req.responseText); }, });
这样请求一定不会成功的。
解决跨域:
1.在ExtJs4.2,有JsonP可进行解决,但是只能用Get的请求方式提交,所以还是有一定缺陷与不足的,这个逻辑是在 Ext.data.JsonP.reques({})的属性,callbackKey:"jsonPCallback", 作为参数传送后台,如图:
然后在后台接受在传送到前台,格式:Response : Ext.data.JsonP.callback1({success:true,data:'ssss'})
前端代码:
Ext.data.JsonP.request({ url: 'http://localhost:3722/ServiceAPIORM.ashx?API=Save', timeout: 300000, params: { name: '123456' }, callbackKey: "jsonPCallback", success: function (req) { alert("成功"); alert(req.responseText); }, failure: function (result) { alert(req.responseText); } });
后端代码:
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string method = context.Request.QueryString["API"]; switch (method) { case "Save": Save(context); break; } } /// <summary> ///save /// </summary> /// <param name="context"></param> private void Save(HttpContext context) { string jsonPCallback = ""; jsonPCallback = context.Request["jsonPCallback"]; context.Response.ContentType = "text/javascript"; context.Response.Write(jsonPCallback + "({success:true,data:'ssss'})"); }
Js 跨域,下面是关于Js跨域的链接
http://blog.csdn.net/iispring/article/details/7428069
我的小鱼你醒了,
还认识早晨吗?
昨夜你曾经说,
愿夜幕永不开启。
初吻吻别的那个季节,
不是已经哭过了吗?
你的香腮边轻轻滑落的,
是你的泪,还是我的泪。
我的指尖还记忆著,
你慌乱的心跳。
温润的体香里,
那一缕长髮飘飘。
——青青树 《魁拔》
交流群:ASP.NET交流群(2群) 58189568
ExtJs4.2交流群(3群)97869295
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决