Преобразование запроса javascript в API в CURL

Я использовал Javascript для обновления токена Azure, но теперь он выдает ошибку:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

Поэтому я хочу использовать вместо этого CURL (PHP).

Вот Javascript:

var form_data = {
    "client_id": "**",
    "grant_type": "refresh_token",
    "resource": "https://analysis.windows.net/powerbi/api",
    "username": "****************",
    "password": "*****************",
    "scope": "openid",
    "client_secret": "**",
    "refresh_token": "**"
    };

    var options = {
    method: "post",
    headers: {
    "Content-Type": "application/x-www-form-urlencoded"
    },
    body: form_data
    }

    return fetch("https://login.microsoftonline.com/common/oauth2/token", options)
    .then((response) => {
    if (response.ok) {
    return response.json();
    } else {
    throw new Error("Server response wasn't OK");
    }
    })
    .then((json) => {
    return json.token;
    });

CURL:

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"https://login.microsoftonline.com/common/oauth2/token");
curl_setopt($ch, CURLOPT_POST, 1);
$client_id = "**";
$client_secret = "**";
curl_setopt($ch, CURLOPT_POSTFIELDS, );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);

Каким должен быть полный запрос CURL?

Вы пробовали просто включить заголовок Origin в свой запрос JavaScript в соответствии с требованиями CORS? Это может быть так же просто, как добавить "Origin": "http://your.site.xyz" в определение headers. Вот страница с дополнительной информацией.

Greg Schmidt 14.06.2018 04:14

Возможно, вы столкнулись с проблемой CORS, поскольку вы выбрали путь PHP, тогда есть библиотека, похожая на версию javascript, которая называется Жрать. Вы можете попробовать это.

Abhishek 14.06.2018 06:42

@GregSchmidt, пробовал: var options = { method: "post", headers: { "Content-Type": "application/x-www-form-urlencoded", "Origin": "http://localhost" }, body: formData }

user9929968 14.06.2018 16:43

Но по-прежнему возникают те же ошибки: `POST login.microsoftonline.com/common/oauth2/token 400 (Bad Request) Failed to load login.microsoftonline.com/common/oauth2/token: Нет заголовка Access-Control-Allow-Origin на запрошенном ресурсе. Следовательно, к источнику 'localhost' доступ не разрешен. Ответ имел код состояния HTTP 400. Если непрозрачный ответ соответствует вашим потребностям, установите режим запроса на «no-cors», чтобы получить ресурс с отключенным CORS. ajax.html: 1 Uncaught (в обещании) TypeError: Failed to fetch`

user9929968 14.06.2018 16:44

У меня нет личного опыта работы с CORS, поэтому я не знаю, подойдет ли localhost для использования там. В сообщении об ошибке упоминается вариант непрозрачного ответа, возможно, это сработает для вас?

Greg Schmidt 14.06.2018 17:43
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
106
0

Другие вопросы по теме