Я нашел пару постов, которые решили эту проблему для других, но не для моей ситуации. Я хотел бы получить лучшее решение для моего межсерверного вызова ajax.
Вот ситуация. У меня есть два URL-адреса, www.mysite.com и members.mysite.com. Первый сайт - на WordPress, а второй - на Codeigniter, я называю эти сайты стороной WordPress и стороной Codeigniter. Сторона codeiginter имеет страницу календаря событий, которая создается в виде модуля, поэтому все, что нужно сделать любой странице, - это включить файл и все javascript и все, что с ним связано. Что касается WordPress, мы должны включить один из этих файлов в страницу, но проблема в том, что сторона codeigniter управляется ajax, поэтому, когда она выполняет ajax-вызовы, вызовы будут кросс-серверными. Вот решения, которые я видел в Интернете с минусами в моей ситуации:
- jsonp - Это не поддерживает данные POST.
- простой прокси на стороне сервера http://devlog.info/2010/03/10/cross-domain-ajax/ - Поскольку javascript совместно используется двумя URL-адресами, мне придется создать один и тот же файл как на стороне wordpress, так и на стороне codeigniter. Это означает дублирование кода, проблемы с производительностью и тот факт, что, если пользователь находится на стороне codeigniter, запрос должен сделать дополнительный вызов страницы, чтобы получить данные.
- Символические ссылки - поскольку оба они находятся на одном сервере, возможно ли создать символическую ссылку на стороне WordPress? Будут ли загружены мои настройки codeigniter? У меня такое чувство, что это не сработает.
- iFrame - этот модуль включен, поэтому ему не хватает всех стилей, заголовков и прочего
- .htaccess файл - это длинный путь, но если был какой-то способ получить файл .htaccess для перенаправления вызова на другой сервер без ведома ajax, он может работать?
На данный момент я склоняюсь к # 2, потому что это единственное рабочее решение. Есть ли другие решения, которые вы, ребята, могли бы придумать? Если бы был какой-то способ передачи данных вместе с jsonp, это было бы идеально, но все сайты говорят, что невозможно передавать данные поста, а codeigniter не любит строки запросов ... на самом деле, я мог бы включить это, но это было бы вероятно, все испортить на этом этапе.
UPDATE
Итак, я последовал первой идее, и она сработала. Я нашел подобное решение в
jQuery $ .ajax (), $ .post отправляет «OPTIONS» как REQUEST_METHOD в Firefox
Что меня сейчас беспокоит, так это то, что они говорят, что есть некоторые кросс-браузерные проблемы. Есть мысли?