SvelteKit 获取 Rails/Apache 后端 CORS 问题

问题描述 投票:0回答:1

我正在尝试调用 Rails 后端上的控制器。在同一域的我的开发服务器上,一切正常。

Access-Control-Allow-Origin *
存在于 Apache 服务器上。

    const res = await fetch(`${PUBLIC_ADMIN_URL}/api_users.json`, {
        method: 'POST',
        headers: {
          'Accept': 'application/json',
          'content-type': 'application/json'
        },
        body: JSON.stringify({"user": user, "password": password})
      }) 

将在同一域中的我的开发服务器上工作。但我必须删除

content-type': 'application/json'
才能将其 POST 到 Rails 后端,而不会在浏览器中出现 CORS 错误。但现在,有效负载在某处丢失,参数不会传递到 Rails 应用程序。

我认为这不是 Rails 的问题,而是 Apache 配置的问题。

ruby-on-rails apache cors sveltekit
1个回答
0
投票

我必须删除

'content-type': 'application/json'
才能使请求到达 Rails 应用程序,但 JSON 将不会被发布。

现在我构建一个

FormData
对象并发布该对象。问题解决了:)

    const loginData = new FormData();
    loginData.append("user", user)
    loginData.append("password", password)

    const res = await window.fetch(`${PUBLIC_ADMIN_URL}/api_users.json`, {
        method: 'POST',
        headers: {
          'Accept': 'application/json',
          // 'content-type': 'application/json'
        },
        body: loginData
      }) 
© www.soinside.com 2019 - 2024. All rights reserved.