被跨域整疯的公司练习生,求帮

howcoder 2020-09-10 09:54:28
在公司中,需要向图片服务器上传图片,可是被跨域整了很久一直不知道怎么解决,网上一搜都是用Vue开发的解决方法,我公司用的是.net mvc开发,在页面中引用element-ui,所以根本没办法按那些方法来解决


报错原因

查了好像说是设置了两次允许跨域,问了后端那边的技术,已经在Nginx取消了允许跨域,然后是在.net Core里设置了允许跨域

但还是一直报前面的错误,不管是注释后端的跨域代码开启nginx允许跨域,都还是上传不了,所以只能求助这里的大佬了!
...全文
2934 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 25 楼 烈阳, 的回复:
[quote=引用 23 楼 Lucio_Lu 的回复:][quote=引用 22 楼 烈阳, 的回复:][quote=引用 21 楼 Lucio_Lu 的回复:]跨域好像一般用CORS和JSONP两种方式解决。 如果是JSONP,则代码都在前端。 如果用CORS则简单,CORS引入了新的HTTP报文头来声明跨域是安全的,但前端所有的工作浏览器都帮你完成,所以前端什么都不需要做,只要后端加上相应报头就行了,#15楼已经提供了方法。 其实你的错误提示已经提示的很明显了,服务器相应报文头没有Access-Control-Allow-Orgin:*。这个错误其实很明显的提示是服务器这里没有响应头,名字包含“Allow”都是服务器的相应包头。 另外,即使你服务器加上了这个响应头,你也会再遇到新的错误,那就是HTTP不能访问HTTPS的源,嘿嘿。
谢谢回复,可是看了错误,我的报错不是因为Access-Control-Allow-Orgin有多个值吗?[/quote]
引用 22 楼 烈阳, 的回复:
[quote=引用 21 楼 Lucio_Lu 的回复:]跨域好像一般用CORS和JSONP两种方式解决。 如果是JSONP,则代码都在前端。 如果用CORS则简单,CORS引入了新的HTTP报文头来声明跨域是安全的,但前端所有的工作浏览器都帮你完成,所以前端什么都不需要做,只要后端加上相应报头就行了,#15楼已经提供了方法。 其实你的错误提示已经提示的很明显了,服务器相应报文头没有Access-Control-Allow-Orgin:*。这个错误其实很明显的提示是服务器这里没有响应头,名字包含“Allow”都是服务器的相应包头。 另外,即使你服务器加上了这个响应头,你也会再遇到新的错误,那就是HTTP不能访问HTTPS的源,嘿嘿。
谢谢回复,可是看了错误,我的报错不是因为Access-Control-Allow-Orgin有多个值吗?[/quote] 哦,确实,报错信息是不能有多个值,Access-Control-Allow-Orgin有多个值不能简单的用逗号分隔,不过你这里已经有通配符*了,只需要通配符*就行了。[/quote] 现在只报两个值了,可是后面第二个值是我图片服务器的值,我不可能在我图片服务器设置允许图片服务器跨域啊,因为同源根本不需要设置额,而且我看了代码都没有设置过允许该值[/quote] 你修改一下,只保留一个星号试试。通配符*表示所有。 你还给你的地址打码,上面你请求的不就是你的服务器么,你光打码这一个地方有什么用,http://photo.gdbjyy.cn/
走在四季 2020-09-16
  • 打赏
  • 举报
回复
引用 1 楼 jio可 的回复:
允许跨域设置*
小哥哥好厉害的样子
howcoder 2020-09-16
  • 打赏
  • 举报
回复
引用 29 楼 sha虫剂 的回复:
我引入成功了的
哇,可以教教我吗?最近公司的小程序想做个客服功能,我有用到Signalr,当时一直没能引入成功,最后选择在网页上做了,然后在小程序里嵌入网页
sha虫剂 2020-09-16
  • 打赏
  • 举报
回复
我引入成功了的
howcoder 2020-09-16
  • 打赏
  • 举报
回复
引用 27 楼 sha虫剂 的回复:
.net的 好像用的什么插件还是什么的 反正当时他们就是改了那么一个地方就都通了
啊,要命,谢谢老哥,后面我再摸索下,对了,看了老哥的贴里有提到vue引入Signalr的问题,请问你最后有引入成功吗
sha虫剂 2020-09-16
  • 打赏
  • 举报
回复
.net的 好像用的什么插件还是什么的 反正当时他们就是改了那么一个地方就都通了
howcoder 2020-09-16
  • 打赏
  • 举报
回复
引用 24 楼 sha虫剂 的回复:
[quote=引用 20 楼 烈阳, 的回复:][quote=引用 18 楼 sha虫剂 的回复:]跨域问题 前端大多数是弄的代理跨域 你这个做不了就让后台改去,你那做不了那么多的事,另外 我现在也是.net的后台在写后台,跨域问题找他们就对了
主要尴尬的是,我们前后端都写,但公司的图片服务器代码不是我写的,现在出了问题,那个写图片服务器的同事去北京出差了,这份工作就到了我手里,我也看了他写的代码,确实好像有做了跨域允许,我上面也有截图的,不知道你是在哪做跨域处理的呢?[/quote] 我是纯前端,做跨域一般是在框架里面配置代理跨域,或者干脆直接在本地弄个nginx做跨域也是可以的 但是.net很多时候前端写了代理跨域也是无法跨域的,我之前就遇到了这个问题 当时问题原因是.net用的那种插件还是框架什么的给阻止了 换了一个通过协议就好了 [/quote] 什么是通过协议额,还是头次听
howcoder 2020-09-16
  • 打赏
  • 举报
回复
引用 23 楼 Lucio_Lu 的回复:
[quote=引用 22 楼 烈阳, 的回复:][quote=引用 21 楼 Lucio_Lu 的回复:]跨域好像一般用CORS和JSONP两种方式解决。 如果是JSONP,则代码都在前端。 如果用CORS则简单,CORS引入了新的HTTP报文头来声明跨域是安全的,但前端所有的工作浏览器都帮你完成,所以前端什么都不需要做,只要后端加上相应报头就行了,#15楼已经提供了方法。 其实你的错误提示已经提示的很明显了,服务器相应报文头没有Access-Control-Allow-Orgin:*。这个错误其实很明显的提示是服务器这里没有响应头,名字包含“Allow”都是服务器的相应包头。 另外,即使你服务器加上了这个响应头,你也会再遇到新的错误,那就是HTTP不能访问HTTPS的源,嘿嘿。
谢谢回复,可是看了错误,我的报错不是因为Access-Control-Allow-Orgin有多个值吗?[/quote]
引用 22 楼 烈阳, 的回复:
[quote=引用 21 楼 Lucio_Lu 的回复:]跨域好像一般用CORS和JSONP两种方式解决。 如果是JSONP,则代码都在前端。 如果用CORS则简单,CORS引入了新的HTTP报文头来声明跨域是安全的,但前端所有的工作浏览器都帮你完成,所以前端什么都不需要做,只要后端加上相应报头就行了,#15楼已经提供了方法。 其实你的错误提示已经提示的很明显了,服务器相应报文头没有Access-Control-Allow-Orgin:*。这个错误其实很明显的提示是服务器这里没有响应头,名字包含“Allow”都是服务器的相应包头。 另外,即使你服务器加上了这个响应头,你也会再遇到新的错误,那就是HTTP不能访问HTTPS的源,嘿嘿。
谢谢回复,可是看了错误,我的报错不是因为Access-Control-Allow-Orgin有多个值吗?[/quote] 哦,确实,报错信息是不能有多个值,Access-Control-Allow-Orgin有多个值不能简单的用逗号分隔,不过你这里已经有通配符*了,只需要通配符*就行了。[/quote] 现在只报两个值了,可是后面第二个值是我图片服务器的值,我不可能在我图片服务器设置允许图片服务器跨域啊,因为同源根本不需要设置额,而且我看了代码都没有设置过允许该值
sha虫剂 2020-09-16
  • 打赏
  • 举报
回复
引用 20 楼 烈阳, 的回复:
[quote=引用 18 楼 sha虫剂 的回复:]跨域问题 前端大多数是弄的代理跨域 你这个做不了就让后台改去,你那做不了那么多的事,另外 我现在也是.net的后台在写后台,跨域问题找他们就对了
主要尴尬的是,我们前后端都写,但公司的图片服务器代码不是我写的,现在出了问题,那个写图片服务器的同事去北京出差了,这份工作就到了我手里,我也看了他写的代码,确实好像有做了跨域允许,我上面也有截图的,不知道你是在哪做跨域处理的呢?[/quote] 我是纯前端,做跨域一般是在框架里面配置代理跨域,或者干脆直接在本地弄个nginx做跨域也是可以的 但是.net很多时候前端写了代理跨域也是无法跨域的,我之前就遇到了这个问题 当时问题原因是.net用的那种插件还是框架什么的给阻止了 换了一个通过协议就好了
  • 打赏
  • 举报
回复
引用 22 楼 烈阳, 的回复:
[quote=引用 21 楼 Lucio_Lu 的回复:]跨域好像一般用CORS和JSONP两种方式解决。 如果是JSONP,则代码都在前端。 如果用CORS则简单,CORS引入了新的HTTP报文头来声明跨域是安全的,但前端所有的工作浏览器都帮你完成,所以前端什么都不需要做,只要后端加上相应报头就行了,#15楼已经提供了方法。 其实你的错误提示已经提示的很明显了,服务器相应报文头没有Access-Control-Allow-Orgin:*。这个错误其实很明显的提示是服务器这里没有响应头,名字包含“Allow”都是服务器的相应包头。 另外,即使你服务器加上了这个响应头,你也会再遇到新的错误,那就是HTTP不能访问HTTPS的源,嘿嘿。
谢谢回复,可是看了错误,我的报错不是因为Access-Control-Allow-Orgin有多个值吗?[/quote]
引用 22 楼 烈阳, 的回复:
[quote=引用 21 楼 Lucio_Lu 的回复:]跨域好像一般用CORS和JSONP两种方式解决。 如果是JSONP,则代码都在前端。 如果用CORS则简单,CORS引入了新的HTTP报文头来声明跨域是安全的,但前端所有的工作浏览器都帮你完成,所以前端什么都不需要做,只要后端加上相应报头就行了,#15楼已经提供了方法。 其实你的错误提示已经提示的很明显了,服务器相应报文头没有Access-Control-Allow-Orgin:*。这个错误其实很明显的提示是服务器这里没有响应头,名字包含“Allow”都是服务器的相应包头。 另外,即使你服务器加上了这个响应头,你也会再遇到新的错误,那就是HTTP不能访问HTTPS的源,嘿嘿。
谢谢回复,可是看了错误,我的报错不是因为Access-Control-Allow-Orgin有多个值吗?[/quote] 哦,确实,报错信息是不能有多个值,Access-Control-Allow-Orgin有多个值不能简单的用逗号分隔,不过你这里已经有通配符*了,只需要通配符*就行了。
howcoder 2020-09-16
  • 打赏
  • 举报
回复
引用 21 楼 Lucio_Lu 的回复:
跨域好像一般用CORS和JSONP两种方式解决。 如果是JSONP,则代码都在前端。 如果用CORS则简单,CORS引入了新的HTTP报文头来声明跨域是安全的,但前端所有的工作浏览器都帮你完成,所以前端什么都不需要做,只要后端加上相应报头就行了,#15楼已经提供了方法。 其实你的错误提示已经提示的很明显了,服务器相应报文头没有Access-Control-Allow-Orgin:*。这个错误其实很明显的提示是服务器这里没有响应头,名字包含“Allow”都是服务器的相应包头。 另外,即使你服务器加上了这个响应头,你也会再遇到新的错误,那就是HTTP不能访问HTTPS的源,嘿嘿。
谢谢回复,可是看了错误,我的报错不是因为Access-Control-Allow-Orgin有多个值吗?
  • 打赏
  • 举报
回复
跨域好像一般用CORS和JSONP两种方式解决。 如果是JSONP,则代码都在前端。 如果用CORS则简单,CORS引入了新的HTTP报文头来声明跨域是安全的,但前端所有的工作浏览器都帮你完成,所以前端什么都不需要做,只要后端加上相应报头就行了,#15楼已经提供了方法。 其实你的错误提示已经提示的很明显了,服务器相应报文头没有Access-Control-Allow-Orgin:*。这个错误其实很明显的提示是服务器这里没有响应头,名字包含“Allow”都是服务器的相应包头。 另外,即使你服务器加上了这个响应头,你也会再遇到新的错误,那就是HTTP不能访问HTTPS的源,嘿嘿。
howcoder 2020-09-16
  • 打赏
  • 举报
回复
引用 18 楼 sha虫剂 的回复:
跨域问题 前端大多数是弄的代理跨域 你这个做不了就让后台改去,你那做不了那么多的事,另外 我现在也是.net的后台在写后台,跨域问题找他们就对了
主要尴尬的是,我们前后端都写,但公司的图片服务器代码不是我写的,现在出了问题,那个写图片服务器的同事去北京出差了,这份工作就到了我手里,我也看了他写的代码,确实好像有做了跨域允许,我上面也有截图的,不知道你是在哪做跨域处理的呢?
howcoder 2020-09-16
  • 打赏
  • 举报
回复
引用 10 楼 admin733 的回复:
这可以查nginx跨域文件里面是不是有问题吧
nginx是没有做任何处理了,是在后端做了允许跨域,还是不行,头大
引用 16 楼 有点小淫荡的老实人 的回复:
我之前也遇到过一个类似的跨域问题 你debugger 会发现你这里的 @imgroot =underfind 如果如果是的话和我遇到的是一样的问题 个人推测是 不同源文件之间的交互导致的跨域问题 或者是与特定目录下的源文件交互而导致的跨域问题 具体解决方案你再搜下
我是C#代码呢,好像没有你说的那个
sha虫剂 2020-09-16
  • 打赏
  • 举报
回复
跨域问题 前端大多数是弄的代理跨域 你这个做不了就让后台改去,你那做不了那么多的事,另外 我现在也是.net的后台在写后台,跨域问题找他们就对了
  • 打赏
  • 举报
回复
我之前的话因为项目中有些参照

然后新开发了些功能,而接口什么的都在前端 的。js文件下

然后分在不同的目录里面

我把接口位置 换了个文件 就可以了
  • 打赏
  • 举报
回复
我之前也遇到过一个类似的跨域问题
你debugger 会发现你这里的 @imgroot =underfind 如果如果是的话和我遇到的是一样的问题


个人推测是 不同源文件之间的交互导致的跨域问题 或者是与特定目录下的源文件交互而导致的跨域问题


具体解决方案你再搜下


走在四季 2020-09-14
  • 打赏
  • 举报
回复
我是做JAVA的,跨域是在后台里解决的,我想.net 应该也可以类似


// 跨域
httpPost.setHeader("Access-Control-Allow-Origin", "*");
// 跨域 Header
httpPost.setHeader("Access-Control-Allow-Methods", "*");
httpPost.setHeader("Access-Control-Allow-Headers", "Content-Type,apikey");// 在这里配置你要定义的参数
// 设置header信息
httpPost.setHeader("Content-type", "application/json");
httpPost.setHeader("apikey", apikey);
httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

部分代码
howcoder 2020-09-11
  • 打赏
  • 举报
回复
引用 11 楼 姎楹 的回复:
我之前ajax调用api也遇到这种,你看下你的data是不是json类型 把data:form,改成JSON.stringify(form)试试
howcoder 2020-09-11
  • 打赏
  • 举报
回复
引用 11 楼 姎楹 的回复:
我之前ajax调用api也遇到这种,你看下你的data是不是json类型 把data:form,改成JSON.stringify(form)试试
我用axios请求也是一样。。。
加载更多回复(11)

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧