热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网页上传插件之WebUploader跨域上传遇到的问题总结

问题用WebUploader网页上传插件进行跨域上传的时候,只有IE可以成功,经过1天的调试发现问题所在在进行AJAX进行上传的时候,会先发送一个OPTIONS的预检请求,然而在I

问题

用WebUploader网页上传插件进行跨域上传的时候,只有IE可以成功,经过1天的调试发现问题所在

在进行AJAX进行上传的时候,会先发送一个OPTIONS的预检请求,然而在IIS的配置里面

技术分享

技术分享

没有允许OPTIONS的请求

所以我在服务端加断点调试发现请求根本进不去服务端的方法,而用IE的时候,IE根本没有预检请求,所以IE就可以调试成功

解决办法

技术分享

加入允许OPTIONS的条件,再次进行测试,问题解决

贴上服务端的代码吧,一个一般处理程序

<%@ WebHandler Language="C#" Class="receive" %>

using System;
using System.Web;
using System.IO;

public class receive : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        if (context.Request.HttpMethod.Equals("OPTIONS"))
        {
            context.Response.ClearContent();
            context.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:61269");
            context.Response.AddHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
            context.Response.AddHeader("Access-Control-Allow-Headers", "content-type");
            context.Response.AddHeader("Access-Control-Max-Age", "30");
            context.Response.End();
        }
        else if (context.Request.HttpMethod.Equals("POST"))
        {

            var files = context.Request.Files;
            for (int i = 0; i )
            {
                var file = files[i];
                var filePath = @"E:\PIC\" + Path.GetFileName(file.FileName);
                file.SaveAs(filePath);
            }
            context.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:61269");
        }
    }

    public bool IsReusable
    {
        get
        {
            return true;
        }
    }
}

跨域的要点便是在响应头中加入

Access-Control-Allow-Origin:*

如果请求头中带有Origin,则Access-Control-Allow-Origin值不能为*,必须为一个URL

AJAX跨域知识参考

http://blog.csdn.net/net_lover/article/details/5172522

网页上传插件之WebUploader---跨域上传遇到的问题总结


推荐阅读
  • ServletContext接口在Java Web开发中扮演着重要角色,它提供了一种方式来获取关于整个Web应用程序的信息。通过ServletContext,开发者可以访问初始化参数、共享数据以及应用资源。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • EasyMock实战指南
    本文介绍了如何使用EasyMock进行单元测试,特别是当测试对象的合作者依赖于外部资源或尚未实现时。通过具体的示例,展示了EasyMock在模拟对象行为方面的强大功能。 ... [详细]
  • MacOS 重装指南
    本文详细介绍了如何通过U盘启动并重新安装MacOS,包括遇到安装问题时的解决方案。 ... [详细]
  • Microsoft即将发布WPF/E的CTP(Community Technology Preview)和SDK,标志着RIA(Rich Internet Application)技术的新里程碑。更多详情及下载链接请参见MSDN官方页面。 ... [详细]
  • 本文深入探讨网页游戏的开发流程,涵盖从程序框架设计到具体实现的技术细节,旨在为开发者提供全面的指导。 ... [详细]
  • 本文旨在深入探讨ASP.NET MVC框架的基本构成,包括其项目目录结构和关键的DLL文件,帮助开发者更好地理解和利用这一强大的Web开发工具。 ... [详细]
  • 深入理解Django中的AJAX应用
    本文详细介绍了AJAX技术及其在Django框架中的应用。AJAX,即异步JavaScript和XML,允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分网页。 ... [详细]
  • 前言叨逼叨iOS上传文件,可能有很多第三方的框架之类的,比如AFN或者Alamofire之类的框架,但是今天要谈论的是原生的API是如何进行文件上传。兵 ... [详细]
  • 深入解析Axios与jQuery的核心差异
    本文详细对比了Axios与jQuery在Web前端开发中的应用,探讨两者在异步请求处理、数据封装及请求方式上的不同之处。 ... [详细]
  • 自定义文件上传按钮的实现方法
    HTML 提供了 `type=file` 的 input 元素用于文件上传功能,但其默认样式较为简陋。本文探讨了如何利用原生 JavaScript 结合 layui 和 bootstrap 的样式来美化文件上传按钮,提升用户体验。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • python开发mysql:单表查询&多表查询
    一单表查询,以下是表内容二多表查询,一下是表内容三总结&表创建过程单 ... [详细]
  • 本文深入探讨 PHPCMS 平台中的字符串截取函数 str_cut 的使用方法,该函数常用于控制输出的标题或内容摘要长度,有效避免因过长的文本导致的页面布局问题。通过本文,读者将掌握如何灵活运用此函数,包括处理 HTML 标签等高级技巧。 ... [详细]
  • Flex 截图 实例 ... [详细]
author-avatar
依然yang梓枫东_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有