Может ли атрибут src iframe выполнить запрос POST? - PullRequest
0 голосов
/ 26 августа 2018

Мне нужно загрузить iframe, используя атрибут src.Есть много дополнительной информации, которую я должен прикрепить к запросу.В настоящее время я просто помещаю всю эту информацию в такой параметр:

<iframe src="mywebsite.com/get_iframe?aVeryLongString"></iframe>

Однако aVeryLongString может быть очень длинным.До тех пор, пока я получаю сообщение об ошибке «414 (Request-URI Too Large)» от сервера.

Есть ли способ сделать этот запрос без получения этой ошибки?

Примечание: URLiframe поставляется с собственной Content-Security-Policy, поэтому я не могу просто использовать srcdoc вместо src.Разве есть способ заставить CSP, даже если вы используете srcdoc?

1 Ответ

0 голосов
/ 26 августа 2018

Если iframe будет содержать HTML, я бы склонялся к тому, что Скотт Маркус упомянул в комментарии : Выполнение ajax POST и заполнение div вместо использования iframe.

Но если вы не можете сделать это по какой-либо причине (и может быть несколько причин, по которым вы не можете, не в последнюю очередь, если iframe будет иметь содержимое, отличное от HTML):

ЕслиaVeryLongString находится в стандартной форме name1=value1&name2=value2 в кодировке URI, вы можете дать iframe a name, а затем отправить ему POST-форму из кода JavaScript.Очень приблизительно:

<iframe name="the-iframe"></iframe>
<script>
(function() { // Scoping IIFE to avoid creating global vars
    var form, input;
    form = document.createElement("form");
    form.action = "/path/to/the/resource"; // I didn't use your `src` because it's incorrect
    form.target = "the-iframe";
    for (/*...looping through the fields you need to add...*/) {
        input = document.createElement("input");
        input.type = "hidden";
        input.name = /*...the field name...*/;
        input.value = /*...the field value...*/;
        form.appendChild(input);
    }
    document.body.appendChild(form);
    form.submit();
})();
</script>

Примечание: src="mywebsite.com/get_iframe" неверно, URL будет //mywebsite.com/get_iframe (относящийся к протоколу URL) или, если страница загружается с этого сайта,/get_iframe или, возможно, ./get_iframe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...