- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 Axios 创建对不同域中的 API 服务器的 HTTP 请求。
http://localhost:3000
的跨源请求。http://localhost:3000
中运行并从浏览器发出请求。到目前为止没有问题。跨源请求工作正常。但是,最近我想为那些 API 调用添加一个单元测试。这个测试环境是jsdom
,因为我使用的是Jest
。当我从服务器端创建 HTTP 请求时,这会引发问题,源设置为服务器不允许的 http://localhost
。
使用axios发出请求:
axios.post(`${API_DOMAIN}/member/account/login`, {
username,
password,
}, {
headers: {
Origin: 'http://localhost:3000'
}
})
但是,响应还是这样说
错误:跨源 http://localhost forbidden
如何将我在 jsdom 下使用 Axios 创建的 HTTP 请求的“来源”更改为 http://localhost
以外的来源?我需要它是 http://localhost:3000
以便 API 服务器允许我。
最佳答案
事实证明,jsdom
是制作来源 localhost
的人,并阻止了跨域请求。来自 https://github.com/axios/axios/issues/1180我能够解决我的问题。在测试套件中,将此代码放在 axios 的任何 HTTP 请求之前:
axios.defaults.adapter = require('axios/lib/adapters/http')
这将使 Axios 使用 NodeJS 的 HTTP 适配器而不是 JSDOM 的 XMLHttpRequests。这样就不会有跨域问题。
关于node.js - 跨源 HTTP 请求源自服务器端 NodeJS/Axios/JSDOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51054286/
我正在使用第三方 JS 库。它需要一些 RegExp 作为输入,用于匹配字符串的各个部分。现在我需要在我传递的RegExp中使用lookbehind,但是lookbehind在JS RegExp中没有
我正在尝试创建一个包含几个下拉菜单的表单。第一个由“客户名称”填充,该名称是从我的 MYSQL 数据库中提取的。选择后,其下方的下拉菜单将填充到数据库中与该“客户名称”关联的可用“客户站点”(在表中的
我运行一个包含数千个容器的 docker 集群,每天随机运行几次我有一个进程“卡住”阻止容器停止。下面是一个带有相应进程的示例容器,以及我试图杀死容器/进程的所有内容。 容器: # docker ps
抱歉,这是一个很长的问题,但它有点复杂。感谢阅读。 我有一个我开发的自定义套接字工厂和套接字类 (Android 5.0),用于执行我需要在该级别执行的一些特定任务。这是我的套接字工厂和套接字(为简洁
有这样的事情: var _ = require("sdk/l10n").get; console.log(_("hello_id!")); 对于新的 SDK。 如何使用它来收集 Firefox ENT
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 3 年前。 Improv
我在我的 PHP 应用程序中实现了一个亵渎过滤器,它根据存储在 MySQL 中的表的亵渎单词列表检查用户从浏览器客户端发送的字符串。该表如下所示: Word badWord1 badWord2 etc
ASP.net 给出了这个奇怪的错误信息。它在尝试加载使用名为“loggedin.master”的母版页的页面时出现。 完整的错误信息如下: [A]ASP.loggedin_master cannot
我正在尝试在 iOS 应用程序和 java servlet 之间实现 AES 加密。 Java servlet 使用 BouncyCaSTLe 库,而 iOS 应用程序使用 OpenSSL。尽管我在双
我是一名优秀的程序员,十分优秀!