启用 CORS 来解决这个问题(ajax跨域请求)
<input type="file" name="btn_Upload" value="上传" id="btn_Upload" />
<img src="" alt="" id="img_Upload" /> @section Scripts
{
<link href="../../js/uploadifive-v1.2.2-standard/uploadifive.css" rel="stylesheet" />
<script src="../../js/uploadifive-v1.2.2-standard/jquery.uploadifive.js"></script>
} <script>
$(function () {
$('#btn_Upload').uploadifive({
formData: { openId: '@ViewBag.OpenId' },
multi: false,
uploadScript: '@WXCommon.ConfigHelper.UploadUrl',
onUploadComplete: function (file, data) {
if (data) {
var json = $.parseJSON(data);
if (json.res) {
alert(json.msg);
$('#img_Upload').attr({
src: '@WXCommon.ConfigHelper.ThumbnailPath' + '/' + '@ViewBag.OpenId' + '/' + json.fileName
});
} else {
alert(json.msg);
}
} else {
alert('服务器内部错误!');
}
}
});
});
</script>
Javascript
//独立部署的图片服务器
public ActionResult Index()
{
//if (Request.HttpMethod == "OPTION")
//{
// Response.AddHeader("Access-Control-Allow-Methods", "GET,POST");
// Response.AddHeader("Access-Control-Allow-Headers", "Content-Type,Accept");
// Response.AddHeader("Access-Control-Max-Age", "1728000");
// Response.AddHeader("Access-Control-Allow-Origin", "*");
//}
string openId = Request["openId"];
HttpPostedFileBase httpPostedFileBase = Request.Files["Filedata"];
string fileName = httpPostedFileBase.FileName;
string extensionName = System.IO.Path.GetExtension(fileName).ToLower();
if (extensionName == ".jpg" || extensionName == ".jpeg")
{
string virtualPath = "/uploads" + "/" + fileName.Replace(extensionName, "") + DateTime.Now.ToString("yyyyMMddhhmmss") + extensionName;
string fullPath = Server.MapPath(virtualPath);
httpPostedFileBase.SaveAs(fullPath); string savePath = Server.MapPath("/thumbnails" + "/" + openId);
string thumbnailFileName = Thumbnail.GetThumbnailImage(, , fullPath, savePath, System.Drawing.Imaging.ImageFormat.Jpeg);
//删除原始文件
//System.IO.File.Delete(fullPath);
NowModel model = new NowModel();
model.Id = ;
model.OpenId = openId;
model.FileName = thumbnailFileName;
nowBLL.Insert(model);
return Json(new { res = true, msg = "上传成功!", fileName = thumbnailFileName });
}
return Json(new { res = false, msg = "上传失败!" });
}
ASP.Net
<!--仅试用于IIS7以上版本,IIS6.0请用Response.AddHeader的方式-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
<add name="Access-Control-Allow-Methods" value="GET,POST,OPTION"/>
<add name="Access-Control-Allow-Headers" value="Content-Type,soapaction"/>
</customHeaders>
</httpProtocol>
</system.webServer>
图片服务器配置文件
启用 CORS 来解决这个问题(ajax跨域请求)的更多相关文章
- 解决ajax跨域请求 (总结)
ajax跨域请求,目前已用几种方法实现: 1)用原生js的xhr对象实现. var url="http://freegeoip.net/json/" ...
- jQuery ajax跨域请求的解决方法
在Ajax应用中,jQuery的Ajax请求是非常容易而且方便的,但是初学者经常会犯一个错误,那就是Ajax请求的url不是本地或者同一个服务器下面的URI,最后导致虽然请求200,但是不会返回任何数 ...
- 用iframe设置代理解决ajax跨域请求问题
面对ajax跨域请求的问题,想用代理的方式来解决这个跨域问题.在服务器端创建一个静态的代理页面,在客户端用iframe调用这个代理 今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到aja ...
- Jquery DataTable AJAX跨域请求的解决方法及SSM框架下服务器端返回JSON格式数据的解决方法
如题,用HBuilder开发APP,涉及到用AJAX跨域请求后台数据,刚接触,费了不少时间.幸得高手指点,得以解决. APP需要用TABLE来显示数据,因此采用了JQ 的DataTable. 在实现 ...
- JQuery的Ajax跨域请求的解决方式
今天在项目中须要做远程数据载入并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究 ...
- 第114天:Ajax跨域请求解决方法(二)
一.什么是跨域 我们先回顾一下域名地址的组成: http:// www . google : 8080 / script/jquery.js http:// (协议号) www (子 ...
- 第113天:Ajax跨域请求解决方法
一.原生JS实现ajax 第一步获得XMLHttpRequest对象 第二步:设置状态监听函数 第三步:open一个连接,true是异步请求 第四部:send一个请求,可以发送一个对象和字符串,不需要 ...
- Ajax跨域请求怎么解决?
前言 项目中需要将第三方系统中,对应用户的代办消息集成到系统中.对方提供了获取对应用户的接口url,但是由于两边的系统是部署到客户现场不同IP的虚机上的,所以进行ajax请求的时候是属于跨域请求的.之 ...
- Ajax跨域请求以及乱码解决
Ajax跨域请求2种解决方法 1 ) 什么叫跨域请求,协议,域名,端口号,其中一样不同都称跨域; 第一种:使用script标签发送请求; //创建一个script标签; var v_element=d ...
- 如何解决ajax跨域请求?
1.什么是跨域? a.域名不同 b.域名相同,端口不同 注:只有域名相同,端口相同时,才可以访问数据 可以使用jsonp解决ajax跨域请求的问题. 2.什么是jsonp? Jsonp其实就是一个跨域 ...
随机推荐
- HackerRank "Favorite sequence"
Typical topological sorting problem .. why is it 'difficult'? #include <iostream> #include < ...
- 【Struts2学习笔记-3】常量配置
Struts2常量 配置Struts2常量值有3个地方,1)在struts.properties文件中配置常量:2)在web.xml文件中配置FileterDispatcher指定初始化参数来配置常量 ...
- 去掉IntelliJ IDEA的拼写检查
Settings→Editor→Inspections→Spelling 去掉Spelling下的Typo复选框即可 来自为知笔记(Wiz)
- FastReport使用二——二维码
以下内容在FastReport Designer 中测试通过,如下图所示: 在使用FastReport Designer创建一维吗也就是一般普通的条码时,设置其Barcode属性为Code128 (建 ...
- xss攻击和sq注入
xss攻击跟SQL注入的原理还是挺简单的,都是利用web是使用字符串进行操作的原理,通过伪造分隔符或者结束符号,来让网页或者服务端来运行输入的代码 一般防御的方法就是在对一些分隔符进行转义,djang ...
- HDU3415
题目大意: 给出一个有N个数字(-1000..1000,N<=10^5)的环状序列,找出一个长度不大于k的连续子序列,使其和最大. 分析: 我们可以将环状序列从某处切开,变成一行,然后复制前n- ...
- PHP写一段代码,确保多个进程同时写入一个文件成功
这个需求是在软件设计过程常见的加锁.学计算机的同学都应该知道,这个是在<计算机操作系统>课程上有这个知识点.主要要考虑的是进程的同步,也就是进程对资源的互斥访问.OK,用程序说话吧! &l ...
- 一. JVM发展史,运行时数据区域,四大引用
一.JVM的出现 JVM将字节码解释成不同os下的机器指令,有了jvm,java语言在不同平台上运行时不需要重新编译 虚拟机发展史 (1)Sun Classic classic jvm要么采用纯解释器 ...
- c++学习-虚函数
#include <iostream> using namespace std; class common{ public: virtual void hello(){cout<&l ...
- YUV422/YUV420播放
YUV播放器,directX,VS2008 MFC完成 CSDN下载 http://download.csdn.net/detail/xjt1988xjt/2386621#comment 默认是播放 ...