Ajax Post Cross Domain 跨域请求 WCF RestFull
来源:互联网 发布:金蝶k3仓库软件多少钱 编辑:程序博客网 时间:2024/06/01 10:08
前段时间做手机WebAPP, 但开发人员习惯在浏览器上先调试基本功能, 但这里就出现了跨域请求问题
当然如果你自己写服务, 自己写WebAPP 都是localhost 就不会跨域, 而且发布到手机上也不会跨域
关键来了!!!!
1. 先要确保你的js写的是对的
$.ajax({ url: url3, data: JSON.stringify({userName:uid,userPass:pwd}), contentType:"application/json; charset=utf-8", type:"POST", crossDomain: true, dataType: 'json', success: function (data) { }, error: function (xhr, textStatus, errMsg) { }});
2. 确保你的服务支持OPTION 请求格式, 因为Jquery 跨域请求好像会请求两次, 第一次OPTION, 第二次POST , 所以你的Method上面应该写 * ,而不是POST
3. 你的web.config 的 system.webServer 节点需要增加跨域响应支持
<httpProtocol>
<customHeaders>
<addname="Access-Control-Allow-Origin"value="*" />
<addname="Access-Control-Allow-Headers"value="Content-Type" />
<addname="Access-Control-Allow-Methods"value="GET, POST,PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
4.这个不知道是不是必须的, 需要在system.serviceModel 中的standardEndpoint增加
crossDomainScriptAccessEnabled="true"
本人花了6个小时才解决,希望其他人少走弯路
/// <summary>
/// 移动跨域请求,会请求两次,第一次OPTIONS 空数据请求,为了获取是否允许跨域,第二次才是带数据请求,所以为了避免程序上一些Bug,空请求时就直接返回,不需要经过业务处理.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Global_PreRequestHandlerExecute(object sender, EventArgs e)
{
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
Response.End();
}
}
/// 移动跨域请求,会请求两次,第一次OPTIONS 空数据请求,为了获取是否允许跨域,第二次才是带数据请求,所以为了避免程序上一些Bug,空请求时就直接返回,不需要经过业务处理.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Global_PreRequestHandlerExecute(object sender, EventArgs e)
{
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
Response.End();
}
}
- Ajax Post Cross Domain 跨域请求 WCF RestFull
- Android Post请求 RestFull Wcf
- WCF 跨域访问。cross domain
- Cross-Domain AJAX Enabled WCF Service
- ajax跨域访问(cross-domain)
- ExtJS cross domain AJAX
- {{js跨域请求解决方案}}Use a Web Proxy for Cross-Domain XMLHttpRequest Calls(使用服务器端代理实现Ajax跨域请求)
- {{js跨域请求解决方案续}}Cross-domain XMLHttpRequest(使用Apache mod_rewrite实现跨域请求)
- Ajax get,post 的跨域请求
- Ajax的Post跨域请求
- ajax POST跨域请求完美解决
- Cross Domain Ajax: a Quick Summary
- Jquery Cross-Domain ajax call using JSONP
- WCF 4.0 service consumed in Silverlight 4.0 with cross domain
- P3P和跨域(cross-domain)访问 cook…
- 完成 ajax.net 的cross domain ajax功能实现
- WCF Rest API书写(正确Post书写、PostMan请求测试、Ajax请求测试)
- 模拟POST请求调用WCF
- cscope
- 为 MySQL 的查询结果添加排名字段
- css中的坑
- android之ContentProvider
- 你若懂我 该有多好
- Ajax Post Cross Domain 跨域请求 WCF RestFull
- 使用dbms_backup_restore修改DBID
- Nginx+FastCGI运行原理
- 欢迎使用CSDN-markdown编辑器
- 常用类“一”(Arrays,Integer,Character)
- js - 监测ie浏览器版本
- 如何在vi 中设置tab键为4,显示行号
- Mysql 查询缓存
- 多维数组到一维数组转化