Браузер отменяет запросы PUT - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть рельсы API и передний конец реагирования с топором ios для взаимодействия с API. Включили CORS в рельсах, но приведенный ниже запрос отменяется браузером и не может найти причину этого.

Запрос скопирован как вызов "fetch":

fetch("http://localhost:3000/api/v1/profile", 
    {
        "credentials":"include",
        "headers":{
            "accept":"application/json, text/plain, */*",
            "accept-language":"en-GB,en-US;q=0.9,en;q=0.8",
            "authorization":"Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwic2NwIjoiYWNjb3VudCIsImF1ZCI6bnVsbCwiaWF0IjoxNTg2OTY4MjIwLCJleHAiOjE1ODcwNTQ2MjAsImp0aSI6IjhkNTE2YjIzLTA1MGQtNGU2MS04ZWE1LWM3ZGIwMzkxNTg0NCJ9.KuwtVNB5minrOs3lvfNjt7lVQSWNRXdqZsbErb6SrGM",
            "content-type":"application/json",
            "sec-fetch-dest":"empty",
            "sec-fetch-mode":"cors",
            "sec-fetch-site":"same-site"
        },
        "referrer":"http://localhost:3001/profile?",
        "referrerPolicy":"no-referrer-when-downgrade",
        "body":"{\"first_name\":\"testsdasd\",\"last_name\":\"asadeesdfsfs\"}",
        "method":"PUT",
        "mode":"cors"
}); 

Это быть отмененным из-за CORS? Кстати, другие почтовые запросы проходят.

Большое спасибо.

Ниже приведен код с использованием топора ios.

async updateProfileData(profile) {
        try {
            let axiosResponse = await AxiosClient.instance().put('http://localhost:3000/api/v1/profile', {
                first_name: profile.first_name,
                last_name: profile.last_name
            },{
                headers: {
                    "Content-Type": "application/json"
                }
            });
            return axiosResponse;
        } catch (e) {
            return e.response;
        }
    }

1 Ответ

0 голосов
/ 15 апреля 2020

Нашел ответ.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at ‘http://localhost:3000/api/v1/profile’. (Reason: Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’).

https://developer.mozilla.org/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials?utm_source=devtools&utm_medium=firefox-cors-errors&utm_campaign=default

...