我正在尝试向 SalesForce.com 提交数据,但我想通过 AJAX 来完成。由于存在阻止 XSS 的限制,我让 jQuery 使用 AJAX 提交到我服务器上的 PHP 页面,然后让该页面简单地将它传递的表单数据转发到正确的 URL。
如果我在关闭 JS 的情况下提交表单,一切都会顺利进行。如果我打开它,Salesforce 会确认收到数据(在 Debug模式下),但它不会出现在我的队列中,也不会出现在 SF 中的任何地方。 SF 吐回它通过的所有字段,它吐回我表单中的每个字段,正确填写。
通过此方法(jQuery 的 $.ajax()
到 PHP cURL)提交内容与通过 native HTML 提交按钮提交内容有什么区别吗?可能导致 SF 注册数据但注册方式不同的原因是什么?我试过添加CURLOPT_HEADER
/CURLOPT_HTTPHEADER
信息
最佳答案
嗯,唯一不能伪造的不同之处是请求的 IP 地址。根据 salesforce 使用的保护有多严格,您可能无法从单独的 IP 地址进行欺骗(它会检测并拒绝请求)。
其他一切都应该是 100% 可伪造的(标题等)。我建议您获取 Firebug 或 TamperData,然后查看从您的浏览器正常发送到 salesforce 的原始 header 。然后从 PHP 复制那个确切的请求。如果您需要其他信息,您可以在 JS 中检测它并将其传递给 PHP(Cookie 信息、浏览器信息等)...
关于php - 表单提交和 cURL 请求之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738380/