关于C#中ajax跨域访问问题
作者:CDL_Darren 发布时间:2023-03-04 21:28:04
标签:c,ajax,跨域
最近因项目需要,需要跨域请求访问数据。跨域访问是指什么?
[跨域]:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。所谓同域是指,域名,协议,端口均相同,不明白没关系,举个栗子:例如,我的电脑上有2个服务器 192.168.0.11和192.168.0.12。如果第一个服务器上的页面要访问第二个服务器上面的数据,就叫做跨域。或者http://www.baidu.com 要访问http://www.xxx.com也是不同域名也是跨域。 下面给出完整请求案例:
前端页面请求代码片:
<script type="text/javascript">
function ajaxsubmit(name,phone) {
$.ajax({
type: "get",
url: "http://10.10.10.132:35709/AppInterface/ResourceInsert.ashx",
data: { "share_name": encodeURI(name), "telphone": encodeURI(phone), "fromtype": 4 },
dataType : "jsonp",
jsonp: "callback",
jsonpCallback: "successcallback",
success: function (json) {
alert(json.msg);
},
error:function(e){
alert("提交失败!请稍后再试");
}
});
}
</script>
一般处理程序代码片:
public class ResourceInsert : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
cms.Model.Resource model = new Model.Resource();
cms.BLL.Resource bll = new BLL.Resource();
//你所需要进行的操作
model.share_name = HttpUtility.UrlDecode(context.Request["share_name"]);
model.ask_telphone = HttpUtility.UrlDecode(context.Request["telphone"]);
model.back_row_one = context.Request["fromtype"];
ConvertHelper ch = new ConvertHelper();
model.share_name = ch.RemoveSpecialChar(model.share_name);
//successcallback为跨域请求回调函数,切记必不可少。获取方式也可以为context.Request["callback"],
//对应前端页面发起请求的jsonp和jsonpCallback格式为:jsonp_value=jsonpCallback_value
if (bll.Exists(model.share_name, model.ask_telphone))
{
Message temp = new Message(1, "我们已收到您的请求额!请勿重复提交!", null);
context.Response.Write("successcallback" + "(" + JsonConvert.SerializeObject(temp) + ")");
context.Response.End();
return;
}
else
{
if (bll.Add(model) > 0)
{
Message temp = new Message(1, "提交成功,我们工作人员会尽快回复你!感谢关注!", null);
context.Response.Write("successcallback" + "(" + JsonConvert.SerializeObject(temp) + ")");
context.Response.End();
return;
}
else
{
Message temp = new Message(0, "请确认信息填写无误!", null);
context.Response.Write("successcallback" + "(" + JsonConvert.SerializeObject(temp) + ")");
context.Response.End();
return;
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
你以为到这里完了吗?当然没有/斜眼笑。配置文件中当然不能少,web.config文件中的 system.webServer 节点下 增加如下配置:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/>
<add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
以上所述是小编给大家介绍的关于C#中ajax跨域访问问题网站的支持!
来源:http://blog.csdn.net/cdl_darren/article/details/71730052
0
投稿
猜你喜欢
- TM的作用我们根据源码解读画出了下图,该图示展现了TM在整个Seata AT模式的分布式事务中所起的作用:从上图中可以看出,TM主要有两个作
- 1、方法中的泛型public static <T> T backSerializable(Class<T> claz
- 之前学习oracle,简单的认为数据库只存在服务器端,学习安卓之后才发现原来android和Ios本身是“携带”数据库的——SQ
- springboot部署项目在linux的两种方式 可以选择 war包方式或者jar包方式(个人推荐使用jar方式)1.springboot
- 这篇文章主要介绍了spring如何实现两个xml配置文件间的互调,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCod
- 前言开发系统时,有时候在实现功能时,删除操作需要实现逻辑删除就是将数据标记为删除,而并非真的物理删除(非DELETE操作),查询时需要携带状
- 本文实例讲述了Java文本文件操作方法。分享给大家供大家参考。具体分析如下:最初Java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了
- 一、前言CountDownLatch维护了一个计数器(还是是state字段),调用countDown方法会将计数器减1,调用await方法会
- 蔡勒公式 蔡勒(Zeller)公式:是一个计算星期的公式。随便给一个日期,就能用这个公式推算出是星期几。蔡勒公式如下:W = [
- 在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应, 同时我们又需要在工作线程中更新UI界面上的控件。但直接访
- 上一篇博文说到了Shader的五个子类 - BitmapShader - LinearGradient - RadialGradient -
- 摘要在使用java做后台站点的开发张,图表和报表功能都是不可或缺 的。本文推荐了8款最精彩实用的Java图表应用,大部分图表应用的功能都类似
- 1. 前言Spring除了IOC和DI,还有另一个杀手锏功能——Spring AOP。AOP是一种面
- 一、问题反馈今天公司测试向我反馈,系统用户模糊查询功能在用户名称包含特殊字符时(_、\、%)无法正常查询结果。二、问题验证1、当like中包
- 一、Media FrameWork背景Media Framework (媒体函数库):此函数库让Android 可以播放与录制许多常见的音频
- 本文是一个 Spring 扩展支持 SPEL 的简单模式,方便第三方通过 Spring 提供额外功能。简化版方式这种方式可以在任何能获取Ap
- 1、抽象类1.1 什么是抽象类?1.1.1 对抽象类的理解1.1.2 关于抽象类类与类之间具有共同特征,将这些共同特征提取出来,形成的就是抽
- android手机有自带的照相机和图库,我们做的项目中有时用到上传图片到服务器,今天做了一个项目用到这个功能,所以把我的代码记录下来和大家分
- 前言apollo配置经常使用的方式是@value,比较便捷,如果只出现在一个类中还行,但是如果多个类中并不是很方便,特别是如果出现配置值变化