HTTP 404 исходит из заголовка ответа - может быть содержимое ответа (обычно это сообщение «К сожалению, мы не можем его найти»), но некоторые браузеры игнорируют его, если оно маленькое (IE делает свои собственные сообщения для маленький 404).
Полагаю, сервер добавляет заголовок состояния 404 HTTP в colorReset.php
- это проблема PHP / любого сервера, который вы используете, а не jQuery.
Метод jQuery $.get
запускает функцию success
только в том случае, если вы получаете статус HTTP 200 с сервера, в противном случае он запускает функцию error
, так что вы все равно можете получить свой цветной шестнадцатеричный код со статусом 404.
Обновление
Я думаю, здесь есть некоторая путаница.
- HTTP 404 не означает , что ваш браузер не может найти страницу
- HTTP 404 означает, что сервер (в данном случае Apache) сообщает вам, что не может найти страницу, но все равно возвращает страницу с контентом.
Если вы посетите страницу 404 в своем браузере, она просто загрузит содержимое страницы.
Если вы загрузите страницу 404 с помощью $.get
, она запустит назначенный метод error
, но конструктор на $.get
позволяет только установить метод success
.
Ваш jQuery будет работать, если вы сделаете:
var myImage = $('#theme :selected').text();
$.ajax({
url: '<?php echo get_bloginfo('template_directory') ?>/colorReset.php',
data: {theme: myImage, spot: '1'},
success: function(data){doColor('#theme_header_color', data);},
error: function(data){doColor('#theme_header_color', data);}
});
Однако я бы посмотрел, почему ваш сервер сначала возвращает 404 - colorReset.php
может содержать ошибку или неправильную конфигурацию сервера.