2011-01-19 34 views
3

我想提交數據到SalesForce.com,但我想通過AJAX做到這一點。由於阻止XSS的限制,我讓jQuery使用AJAX提交到我的服務器上的PHP頁面,然後讓該頁面簡單地將它傳遞的formdata轉發到正確的URL。表單提交和cURL請求之間有什麼不同?

如果我提交JS關閉的表單,一切都很好。如果我打開它,Salesforce會確認收到數據(處於調試模式),但它不會顯示在我的隊列中或SF中的任何位置。 SF將所有傳遞過來的字段吐出來,然後將我在表格中填寫的每個字段都吐出來。

通過此方法(jQuery的$.ajax()到PHP cURL)以及通過本機HTML Submit按鈕提交內容有什麼區別?有些東西可能會導致SF註冊數據,但註冊的方式不同?我試過添加CURLOPT_HEADER/CURLOPT_HTTPHEADER信息

+1

我對SF一無所知,但它會期待一個`Cookie`標題以及POST日期,哪個cURL可能不會發送? – TRiG 2011-01-19 17:14:20

+0

我不確定我是否理解這個問題 - 表單是否使用Cookie?我沒有在沒有AJAX的情況下在這個頁面上傳遞cookie,那麼它會在那裏尋找什麼? – 2011-01-19 17:17:40

+1

USER_AGENT標頭是一個明顯不同的東西。另外,正如@TRiG所說,瀏覽器會在每個請求中攜帶一些cookie,例如會話信息。這可能是銷售人員對此敏感。你可以在這裏找到關於如何處理捲曲和餅乾的信息:搜索「捲曲餅乾」或「餅乾罐頭」 – 2011-01-19 17:17:43

回答

2

嗯,唯一不同的是你不能僞造的是請求的IP地址。根據銷售人員使用的保護措施有多艱難,您可能無法從單獨的IP地址進行欺騙(它會檢測並拒絕請求)。

其他一切應該是100%僞造(標題等)。我會建議的是,你會得到螢火蟲或TamperData,並看看通常從瀏覽器發送到salesforce的原始標題。然後從PHP複製確切的請求。如果您需要其他信息,您可以在JS中檢測到它並將它傳遞給PHP(Cookie信息,瀏覽器信息等)...

0

$ .ajax()從客戶端瀏覽器傳輸cookie;並且還添加了「X-Requested-With:XMLHttpRequest」請求標頭。

+0

該標題是否會自動用cURL轉發?因爲否則我不認爲這是傳遞。無論哪種方式,但這是很好的知道,謝謝。 – 2011-01-20 15:20:42

0

也許嘗試添加運行php的機器(外部)IP地址代碼到salesforce中的可信網絡列表。登錄到salesforce,並進入設置 - >安全控制 - >網絡訪問,並在那裏添加IP。

我遇到了類似的問題,不得不添加運行連接到SF的Java應用程序的服務器的IP地址,這解決了我的問題。

相關問題