создание AJAX-вызовов с javascript на php с использованием jquery

Работает:

    function jsUpvote(photo_id, username) {

        //var getURL = "http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username;

        $.get("http://uglyfacez.com/gallery/upvote.php?photo_id=15&username=user000",
            function(returnValue){
               //do stuff here
        });
    }

Я написал вышеприведенную функцию, чтобы запустить php-скрипт на странице и передать переменные photo_id и имя пользователя в скрипт через URL-адрес. Когда я жестко кодирую его, как описано выше, он работает отлично, но когда я даю ему переменные JavaScript (как вы можете видеть в getURL), это вообще не сработает. Например, это то, что я хочу сделать, но не буду работать:

$.get("http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username,
            function(returnValue){
               //do stuff here
        });

Почему это не сработает и каково решение?

EDIT: Я обнаружил, что проблема. По какой-то причине, включая www в моем URL-адресе GET, он не получает ответа от сервера. После удаления с URL-адреса он работает отлично.

1
@RussellStrauss: Томалак пытался сказать, что « он не работает » является абсолютно бесполезным заявлением и не помогает в решении проблемы. Обычно ожидается, что OP дает полную информацию об ошибке и показывает некоторые усилия в расследовании проблемы до публикации ее. Другие люди жертвуют свое время для решения проблемы, поэтому некоторые минимальные усилия со стороны ОП весьма приветствуются.
добавлено автор Tadeck, источник
Мне жаль, что ты так себя чувствуешь, но если бы это сработало, меня бы здесь не было.
добавлено автор aleroxac, источник
К сожалению, я имел в виду, что «блок кода не выполняется, и я не могу понять, почему». Я не понимал, что не упоминал об этом в первый раз.
добавлено автор aleroxac, источник

3 ответы

Это, по-видимому, проблема с запросами на междоменные запросы .

Вы можете использовать некоторые решения, такие как JSONP , или загрузить скрипт из другого домена (в данном случае: подкод www ). Чтобы увидеть различные аспекты и настройки кросс-домена, перейдите в .ajax() страница документации (и найдите « кросс-домен » или « crossDomain »).

Проблема в основном связана с той же политикой происхождения . На странице указанной документации вы можете прочитать:

      
  • Из-за ограничений безопасности браузера большинство запросов «Ajax» подчиняются той же политике происхождения ; запрос не может успешно извлекать данные из другого домена, субдомена или протокола.
  •   
  • Сценарии и запросы JSONP не подпадают под одни и те же ограничения политики происхождения.
  •   
2
добавлено

Вот sysntax для функции jQuery .get:

jQuery.get (url [ data] [ success (data, textStatus, jqXHR)] [ dataType])

что-то вроде:

$.get("http://www.uglyfacez.com/gallery/upvote.php", {'photo_id':photo_id,'username':username},
            function(returnValue){
               //do stuff here
        });

попробуйте следовать синтаксису, сначала поместите данные о параметрах функции, я думаю, эта ссылка также может помочь вам:

http://api.jquery.com/jQuery.get/

Или если вы все еще сталкиваетесь с одной и той же проблемой, попробуйте снова открыть ссылку вручную в своем браузере и проверить, не возвращает ли она какую-либо ошибку, чтобы убедиться, что она вернет ваш ожидаемый результат. :)

1
добавлено
Вы видите какие-либо ошибки в firebug, когда код запускается, если он отлично работает на фактическом сайте, который выполняет запрос, то он вызван ошибкой в ​​коде javascript, который у вас есть, если firebug возвращает ошибку javascript, это будет лучше, если вы разместите его здесь, чтобы мы могли легче обнаружить проблему. :)
добавлено автор Christopher Pelayo, источник
пожалуйста. :)
добавлено автор Christopher Pelayo, источник
Открытие ссылки вручную в моем браузере отлично работает и не вызывает никаких ошибок. Вот как я знаю, что это проблема с моим вызовом .get.
добавлено автор aleroxac, источник
это также ответит на другой вопрос, который у меня был, спасибо
добавлено автор aleroxac, источник

Вы правильно устанавливаете photo_id и имя пользователя? Больше кода может помочь. Что такое сообщение об ошибке? Вы используете Firebug или Chrome, чтобы узнать, получаете ли вы ошибку? Кажется, что имя_файла и/или имя пользователя не передаются должным образом.

0
добавлено
Да, и фото_ид, и имя пользователя будут переданы и установлены правильно. Если я предупреждаю (getURL); он дает мне точный url, который я хочу. Если я получу 15 для photo_id и user000 для имени пользователя, он даст мне точный URL, написанный выше. Больше нет кода, который я использую. Вы можете увидеть здесь ошибку: i.imgur.com/Rujzb.png Код в function (returnValue) просто не запускается. Я использую Firebug для отладки.
добавлено автор aleroxac, источник
Вот мой следующий вопрос. Используете ли вы какой-либо инструмент для просмотра того, что отправляется или возвращается из URL-адреса? Я все еще думаю, что, возможно, есть место или что-то, что упускается.
добавлено автор Jamie R Rytlewski, источник
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp