Какие различия существуют между отправкой форм и запросами cURL? - PullRequest
3 голосов
/ 19 января 2011

Я пытаюсь отправить данные на SalesForce.com, но я бы хотел сделать это через AJAX. Поскольку существуют ограничения для сдерживания XSS, я использую AJAX в jQuery для отправки на страницу PHP на моем сервере, а затем на этой странице просто пересылаю переданные данные формы по соответствующему URL.

Если я отправляю форму с отключенным JS, все проходит нормально. Если я включаю его, Salesforce подтверждает получение данных (в режиме отладки), но они не отображаются в моей очереди или где-либо еще в SF. SF выплевывает все поля, которые были переданы, и выплевывает все поля, которые у меня есть в моей форме, правильно заполненные.

Существуют ли какие-либо различия между отправкой чего-либо с помощью этого метода (jQuery's $.ajax() в PHP cURL) и с помощью встроенной кнопки HTML Submit? Что-то, что может заставить SF регистрировать данные, но регистрировать это иначе? Я пытался добавить CURLOPT_HEADER / CURLOPT_HTTPHEADER информации

Ответы [ 3 ]

2 голосов
/ 19 января 2011

Ну, единственное, что отличается от того, что вы не можете подделать, - это IP-адрес запроса.В зависимости от степени защиты, которую использует Salesforce, вы не сможете подделать отдельный IP-адрес (он обнаружит и отклонит запрос).

Все остальное должно быть на 100% поддельным (заголовки,так далее).Я бы посоветовал вам получить Firebug или TamperData и посмотреть на обычные заголовки, которые обычно отправляются в salesforce из вашего браузера.Затем скопируйте этот точный запрос из PHP.Если вам нужна другая информация, вы можете обнаружить ее в JS и передать в PHP (информация о файлах cookie, информация о браузере и т. Д.) ...

0 голосов
/ 19 января 2011

Возможно, попробуйте добавить (внешний) IP-адрес компьютера, на котором выполняется код php, в список доверенных сетей в Salesforce.Войдите в систему Salesforce, перейдите в раздел «Настройка» -> «Контроль безопасности» -> «Доступ к сети» и добавьте IP-адрес.

Я столкнулся с подобной проблемой, и мне пришлось добавить IP-адрес сервера, на котором выполнялось приложение Java, подключенное к sf, и это решило проблему для меня.

0 голосов
/ 19 января 2011

$. Ajax () передает куки из браузера клиента; и также добавляет заголовок запроса «X-Requested-With: XMLHttpRequest».

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