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:如何更改它调用的本地主机端口?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改Apache中的HTTP监听端口

如何在两个端口之间的本地主机中捕获数据包

如何在本地主机(任何端口)上运行 html 文件

WAMP:无法连接到本地主机

React Native 31,新的 Appdelegate.m 没有要更改的本地主机:网络请求失败

如何将服务绑定到任何主机的端口?