ES6 fetch:如何更改它调用的本地主机端口?
Posted
技术标签:
【中文标题】ES6 fetch:如何更改它调用的本地主机端口?【英文标题】:ES6 fetch: How do I change the localhost port it calls? 【发布时间】:2018-05-10 14:03:42 【问题描述】:我有一个 webpack-dev-server 在 :8080
上运行 node.js,为我的前端服务。我有一个在 :8088
上运行的 Spring Boot MVC 应用程序,为我的实际后端服务提供服务。
我有一个登录系统,我想在 :8088 上调用,如何将 fetch
函数的永久设置更改为在每次调用该函数时引用 :8088
而不是 :8080
?
我尝试了以下方法,但无济于事:
login (commit, authData)
fetch('/api/login',
username: authData.username,
password: authData.password
,
mode: 'no-cors',
method: 'post',
url: `http://localhost:8088`,
credentials: 'include'
) // ... goes on
不过还是指8080:
bodyUsed: false
headers: Headers
ok: true
redirected: false
status: 200
statusText: "OK"
type: "basic"
url: "http://localhost:8080/api/login"
【问题讨论】:
你可以从 application.properties 更改它 你能提供一个配置它的例子吗? 【参考方案1】:您是否尝试将完整的 url 放入您的 fetch 第一个参数中?很确定/api/login
会向当前主机发出请求。
fetch('http://localhost:8088/api/login',
username: authData.username,
password: authData.password
,
mode: 'no-cors',
method: 'post',
url: `http://localhost:8088`,
credentials: 'include'
)
当然,您需要启用 CORS 才能使其正常工作。
【讨论】:
然后我得到message: "NetworkError when attempting to fetch resource."
您确定在您的服务器应用程序上启用了 CORS 吗?你可以在这里找到很好的帮助:enable-cors.org/server.html
是的,我已经在 Spring Boot 中将整个应用程序配置为接受来自 localhost:8080 的 CORS 来源。但是,我可以看到该请求永远不会进入服务器。但它可以直接从 cURL 正常工作。以上是关于ES6 fetch:如何更改它调用的本地主机端口?的主要内容,如果未能解决你的问题,请参考以下文章