#reactjs #typescript #asp.net-core #asp.net-web-api #react-typescript
#reactjs #typescript #asp.net-core #asp.net-web-api #реагировать-машинопись
Вопрос:
Это моя конфигурация в asp.net основной веб-API:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
и
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseCors("CorsPolicy");
И, наконец, мой javascript (typescript react):
const requestOptions = {
method: 'POST',
mode: 'cors' as RequestMode,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ Username: username, Password: password })
};
return fetch(`${this.baseUrl}/auth/register`, requestOptions).then(res => {
debugger;
if (res.ok === false) {
return Promise.reject("Invalid request");
}
return res.json();
});
Я не могу понять это. Я попытался изменить режим на стороне клиента. Я пробовал.С помощью ORIGINS(«http://localhost:3000 «) в API, и теперь мне не повезло. Чего мне здесь не хватает? Я запустил свое приложение react с помощью npm start, не так ли? Не должно быть?
Ответ:
Request URL: https://localhost:44346/auth/register
Request Method: POST
Status Code: 404
Remote Address: [::1]:44346
Referrer Policy: strict-origin-when-cross-origin
Заголовки ответа:
access-control-allow-origin: *
date: Thu, 17 Dec 2020 22:23:37 GMT
server: Microsoft-IIS/10.0
x-powered-by: ASP.NET
Комментарии:
1. Вы также получаете эту ошибку, когда запрашиваете что-то, что не является 404?
2. Что именно представляет собой сообщение об ошибке cors?
3. Привет, @KevinB, это странная часть. Я получаю 204 при вызове ОПЦИИ (предполетный), но 404 при вызове POST. Заголовки ответа и ответа публикуются в сообщении
4. Верно, но в чем на самом деле ошибка? без фактической ошибки cors мы можем только размышлять о том, почему браузер отклоняет ее.
5. Ваши заголовки, похоже, в порядке, и ваш последний комментарий, похоже, подтверждает, что предполетная проверка не завершается сбоем, так что … я подозреваю, что это может быть вообще не проблема, связанная с cors.
Ответ №1:
Порядок промежуточных программ важен.
В вашем Configure()
методе сначала добавьте app.UseRouting();
и после этого app.UseCors("CorsPolicy");
Комментарии:
1. Попробовал, никакой разницы
Ответ №2:
попробуйте удалить
mode: 'cors' as RequestMode
из вашего javascript
и вместо
body: JSON.stringify({ Username: username, Password: password })
используйте
body: { Username: username, Password: password }
Ответ №3:
import { ExpectedConditions as EC, browser, by, element } from 'protractor';
// ...
async function getTextFromClipboard() {
// ...
await browser.wait(
EC.visibilityOf(element(by.css('.btn-copy'))),
waitTimeout
);
await element(by.css('.btn-copy')).click();
}