Политика безопасности контента, запрещающая отправку формы javascript на php сервер - PullRequest
0 голосов
/ 07 июня 2018

Может кто-нибудь помочь решить эту надоедливую проблему?Я пытаюсь отправить бланк Stripe на мой сервер.У меня есть их ссылка в моем заголовке <script src="https://js.stripe.com/v3/"></script>.Каждый раз, когда я нажимаю кнопку формы, ничего не происходит, потому что CSP препятствует отправке формы.Похоже, Firefox вводит какой-то скрипт?Как обойти это?Я на локальном хосте.

Журналы консоли

Content Security Policy: The page’s settings blocked the loading of a resource at self (“script-src”). Source: try {

(function injectPageScriptAPI(scr....
elements-inner-card-799faf0b7f6484028049b34fc28226d1.html:1
Content Security Policy: The page’s settings blocked the loading of a resource at self (“script-src”). Source: (function(){function _PostRPC() {        // in....
elements-inner-card-799faf0b7f6484028049b34fc28226d1.html:1
Content Security Policy: The page’s settings blocked the loading of a resource at self (“script-src”). Source: try {

(function injectPageScriptAPI(scr....
controller-0d0fbe23aa60de208bc061dd4283db56.html:1
Content Security Policy: The page’s settings blocked the loading of a resource at self (“script-src”). Source: (function(){function _PostRPC() {        // in....
controller-0d0fbe23aa60de208bc061dd4283db56.html:1
Content Security Policy: The page’s settings blocked the loading of a resource at self (“script-src”). Source: try {

var AG_onLoad=function(func){if(d....
controller-0d0fbe23aa60de208bc061dd4283db56.html:1
Content Security Policy: The page’s settings blocked the loading of a resource at self (“script-src”). Source: try {

var AG_onLoad=function(func){if(d....
elements-inner-card-799faf0b7f6484028049b34fc28226d1.html:1

Javascript

var stripe = Stripe('pk_test_test');
var elements = stripe.elements();
    // Handle form submission
    var form = document.getElementById('payment-form');

    form.addEventListener('submitpayment', function(event) {
        event.preventDefault();

    stripe.createToken(card).then(function(result) {
            if (result.error) {
                // Inform the user if there was an error
                var errorElement = document.getElementById('card-errors');
                errorElement.textContent = result.error.message;
            } else {
                stripeTokenHandler(result.token);
            }
        });
    });

    // Send Stripe Token to Server
    function stripeTokenHandler(token) {
        // Insert the token ID into the form so it gets submitted to the server
        var form = document.getElementById('payment-form');

    // Add Stripe Token to hidden input
        var hiddenInput = document.createElement('input');
        hiddenInput.setAttribute('type', 'hidden');
        hiddenInput.setAttribute('name', 'stripeToken');
        hiddenInput.setAttribute('value', token.id);
        form.appendChild(hiddenInput);

    // Submit form
     form.submit();
    }

1 Ответ

0 голосов
/ 07 июня 2018

В данном конкретном случае эта проблема была вызвана надстройкой AdGuard FireFox.

Дополнительные ресурсы:

  • Похоже, вы используете расширение AdGuard (AG_onLoad, Поиск Google , так что это вероятный виновник
  • Эта CSP Github Page - отличный ресурс, но этот вызов _PostRPC находится в unexplained .md документе.
  • Похоже, это может быть связано с этой проблемой GitHub - по-видимому, FF очень строго применяет CSP

Если вы отключите все надстройки, можете ли вы проверить, работает ли он правильно?

HTH!

...