POST завершается с ошибкой javascript, но завершается успешно с формой на размещенной на IIS веб-странице - PullRequest
0 голосов
/ 04 апреля 2020

Я чрезвычайно застрял в проблеме: у меня есть очень простая c веб-страница, размещенная на IIS моего сервера, которая имеет форму, состоящую из 2 полей: 1. Пользователи 2. Сообщение

У меня есть API, который позволяет мне отправлять сообщения одному пользователю, поэтому изначально веб-страница представляла собой просто форму с методом post и действием для API, и она работала отлично. Но идея веб-страницы заключается в том, чтобы разрешить массовую отправку всем пользователям, перечисленным в поле «Пользователи», поэтому для этого я создал простой javascript, который должен это делать, но когда я пытаюсь опубликовать даже для одного пользователя из Сценарий java Я получаю ошибку «Ошибка HTTP 405.0 - Метод не разрешен». Я возился с обработчиками событий в своем диспетчере IIS, но лучшее, что мне удалось сделать, - это sh - перезагрузить веб-страницу как пустую страницу.

Любая помощь будет принята с благодарностью. .

Вот мой JS с URL-адресом для корзины запросов (использовал его для тестирования):

function sendMsg(){
    console.log("laca a");
    var recipients = document.getElementById('pageto').value;
    var msg = document.getElementById('msg').value;
    var pageto= recipients.split(",");
    var responses = "";
    var de="";
    var st="";
    for (index = 0; index < pageto.length; index++) {
        alert("Sending to " + pageto[index]);
        try{
        $.post("https://en6ynqbviq1xe.x.pipedream.net/",
        {
           pageto:pageto[index],
           msg:msg,
           submit:""
        },
        function(data,status){
                de = data.value;
                st = status;
            responses.concat(data," ",status," \n");
        });
        }
        catch(err){
        responses.concat(" ",err," \n");
        }
    }
    alert("done");
}

, а вот мой HTML:

!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="CSS\style.css">
  <script src="JS\main2.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<div class="container">  
  <form id="contact" method="post"> 
    <h3>Bulk message</h3>
    <h4>Enter Users and your message</h4>
      <input id="pageto" name="pageto" placeholder="User1, User2, User3" type="text" tabindex="1" required autofocus>
      <textarea maxlength="160" id="msg" name="msg" placeholder="Type your message here...." tabindex="2" required></textarea>

      <button name="submit" type="submit" onClick="sendMsg()" id="contact-submit" data-submit="...Sending">Submit</button>
  </form>
</div>
</body>'

Пожалуйста, я схожу с ума по этому поводу.

1 Ответ

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

Кажется, вы хотите отправить запрос CORS на сервер. Он возвращает ошибку 405.

CORS означает, что он разрешит Ajax вызовов службам в том же домене, что и страница HTML.

Чтобы решить эту проблему, я предлагаю вам попробуйте добавить ниже конфигурацию на сервере web.config вашего сервера.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.webserver>
    <httpprotocol>
      <customheaders>
        <add name="Access-Control-Allow-Origin" value="domain" />
      </customheaders>
    </httpprotocol>
  </system.webserver>
</configuration>
...