Как исправить ошибку размещения контента - PullRequest
0 голосов
/ 29 июня 2018

Спасибо всегда за вашу поддержку. В настоящее время я пытаюсь загрузить медиа через ajax / jquery. Я мог загрузить изображение, но всякий раз, когда я пытался загрузить видео, раньше я не получал никакой информации о доставке контента. так что я добавил это:

xhr.setRequestHeader("content-Disposition", "attachment; filename=small.mp4");

и что я получаю сейчас - это предпечатная проверка заголовка:

Не удалось загрузить http://myurl/wp-json/wp/v2/media: Поле заголовка запроса content-Disposition не разрешено Access-Control-Allow-Headers в ответе перед полетом.

Это мой WordPress:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

<IfModule mod_headers.c>
  <FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js|mp4)$">
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Content-Disposition, Accept"

</FilesMatch>
</IfModule>

# END WordPress

мой код запроса таков:

$.ajax({
        url: 'http://myurl/wp-json/wp/v2/media',
        method: 'POST',
        data: formData,
        crossDomain: true,
        contentType: 'application/json',
        contentType: false,

        contentDisposition: 'form-data',//'attachment, filename="small.mp4"',
        //contentDisposition: 'attachment, filename="small.mp4"'
        processData: false,

        beforeSend: function (xhr) {
            xhr.setRequestHeader( 'Authorization', 'Basic ' + Base64.encode( 'admin:Rastrastvibe' ) );
            xhr.setRequestHeader("content-Disposition", "attachment; filename=small.mp4");

        },
        success: function( data ) {
            console.log( data );
            var featuredimageid = data.id;
            formData.append("featured_media", featuredimageid);


            $.ajax({
                url: 'http://myurl/wp-json/wp/v2/posts',
                method: 'POST',
                data: formData,
                crossDomain: true,
                contentType: 'application/json',
                contentType: false,
                processData: false,
                beforeSend: function (xhr) {
                    xhr.setRequestHeader( 'Authorization', 'Basic ' + Base64.encode( 'admin:pass' ) );
                },
                success: function( data ) {

                    console.log( data );
           // var featuredimage= data.id;
           // console.log(featuredimage);



       },
       error: function( error ) {
        console.log( error );

    }
});


        },
        error: function( error ) {
            console.log( error );


        }
    });
});

1 Ответ

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

Спасибо сообществу, я все разобрал. сначала я перередактировал свой WordPress .htaccess следующим образом:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Content-Disposition, Accept"
</IfModule>


# END WordPress

Затем я использовал мою форму для отправки файла вместо указания местоположения файла через объект формданных, потому что я бойкотировал ввод файла моей формы, отправляющей файл. Теперь к моей следующей задаче - добавить как изображение, так и видео вложение.

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