Javascript HTTP 405方法不允许,似乎是CORS问题
从我的Javascript程序中请求此URL(具有库Javascript HTTP 405方法不允许,似乎是CORS问题,javascript,ajax,printing,cors,Javascript,Ajax,Printing,Cors,从我的Javascript程序中请求此URL(具有库epson-2.6.0.js,用于热敏打印机的用于Javascript的epson sdk)。我的目标是通过以太网的TM U220 GET XHR http://192.168.199.15:8008/socket.io/1/ OPTIONS XHR http://192.168.199.15/cgi-bin/epos/service.cgi [HTTP/1.1 405 Method Not Allowed 7ms] 已阻止跨源请求:同
epson-2.6.0.js
,用于热敏打印机的用于Javascript的epson sdk)。我的目标是通过以太网的TM U220
GET XHR http://192.168.199.15:8008/socket.io/1/
OPTIONS XHR http://192.168.199.15/cgi-bin/epos/service.cgi [HTTP/1.1 405 Method Not Allowed 7ms]
已阻止跨源请求:同一源策略不允许读取位于的远程资源。(原因:缺少CORS标头“访问控制允许原点”)
响应标题(118 B)
Allow GET, HEAD, POST
Content-Length 0
Server Allegro-Software-RomPager/4.01
请求头(478b)
Accept text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en
Access-Control-Request-Headers content-type,if-modified-since,soapaction
Access-Control-Request-Method POST
Connection keep-alive
DNT 1
Host 192.168.199.15
Origin null
User-Agent Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/58.0
我一直在网上搜索如何解决这个问题。
谁来帮忙。我无法更改http服务器的打印机固件,只能通过Javascript I控件执行某些操作。如果您无法控制服务器,有几种方法可以解决CORS问题 方法1 安装CORS插件 如果您的应用程序仅为您制作,不会被其他任何人使用,那么这将非常有用。此外,一些网站如youtube将停止工作,因此请谨慎使用 方法2
创建自己的代理服务器。推荐,但需要技术诀窍。如果您的应用程序也被许多其他用户使用,此解决方案尤其有用。这是我以前做过的事情,效果很好。您可以在heroku或任何您想要的地方托管代理服务器。您的代理服务器将截获选项请求,并在响应头中发送Access Control Allow Origin:*以使浏览器能够进行get/post调用。然后,代理服务器将您的请求路由到实际服务器,并将响应从实际服务器返回到启用ePos Webservices所需的客户端。 这不能使用提供的可执行实用程序来完成。 一旦您的打印机使用有效的本地IP连接到网络,您需要使用常用浏览器浏览(或无论您的espon打印机IP是什么),它会要求您输入默认为epson/epson的用户密码,然后您需要导航到ePos打印,然后启用ePos打印选项,最后单击下方的重新启动按钮。
然后,打印机将向HTTP响应头中添加一个Allow Cross Origin*头,这很好,并且无需禁用有用的浏览器功能。尝试过的方法1没有带来任何区别。我错过什么了吗?顺便说一句,我必须为客户将此解决方案部署在带有chrome/firefox的android平板电脑上。如果此应用程序是为客户提供的,那么方法1不是一个好方法。选择方法2。对android平板电脑上的代理有什么建议吗?这个设备其实并不重要。您的JS代码将调用您完全控制的代理服务器。这可能是在heroku或类似的网站上发布的。我很困惑。该页面是通过firefox/chrome在设备上访问的,如何在那里设置代理?你能解释一下吗?太好了!我工作得很好。我已经有好几天没能解决这个问题了,甚至爱普生的支持也不能帮助我纠正这个问题。这在espon文档中不存在。谢谢如果这项工作正常,那么今天早上打印机“忘记”并停止添加cors标题-但是设置仍处于启用状态。登录到打印机UI并提供uid/pw解决了这个问题,但这是出乎意料的,现在我正在寻找一种自动登录的方法。仅供参考,它可能不会被设置并忘记。您是否能够解决此问题?