无法提交到REST API - 仅限Firefox

时间:2014-06-03 00:32:27

标签: jquery ajax firefox

我有一个非常简单的jQuery / AJAX GET代码段,用于输入用户将表单填入我们使用的CRM数据库。

 jQuery.get("https://www.website.com/RESTForm.aspx", {
     Customer : "ch000096151eArad", 
     Email : "1", 
     ownerid : "8", 
     overwrite : "0", 
     rurl : "http://www.website.com", 
     FirstName : jQuery('#firstname').val(), 
     LastName : jQuery('#lastname').val(), E
     mail : jQuery('#business_email').val(), 
     Company : jQuery('#COMPANY_NAME').val(), 
     LogIn_Name__c : jQuery('#loginname').val(),  
     Title : jQuery('#position').val(), 
     MailingStreet : jQuery('#business_address').val(), 
     MailingStreet2 : jQuery('#business_address2').val(), 
     MailingCity : jQuery('#business_city').val(), 
     MailingState : "GA", 
     MailingZip : jQuery('#business_zip').val(), 
     MailingCountry : jQuery('#business_country').val(), 
     Source : "Member", 
     CRMType: "Contact", 
     Institute_Membership__c: "Free Member" 
} );

表单在每个浏览器中都成功提交,但是我在控制台中获取了Firefox:

GET https://www.website.com/RESTForm.aspx [HTTP/1.1 200 OK 236ms]
Cross-Origin Request Blocked: 
The Same Origin Policy disallows reading the remote resource at https://www.website.com/RESTForm.aspx. 
This can be fixed by moving the resource to the same domain or enabling CORS.

Firefox似乎不喜欢我将其提交到另一个域,但我不确定如何处理这些信息。任何帮助将非常感激。

2 个答案:

答案 0 :(得分:1)

你几乎已经有了答案:

The Same Origin Policy disallows reading the remote resource at https://www.website.com/RESTForm.aspx. 
This can be fixed by moving the resource to the same domain or enabling CORS.

您可以提交与网页相同的域名或更改请求类型。例如,您可以执行常规(非XHR)请求。

答案 1 :(得分:0)

这是一种客户端安全措施,可防止客户端代码在用户不知情的情况下访问多个网站。例如,请考虑浏览器中您登录银行帐户的一个标签,以及包含恶意代码的其他标签,该标签试图通过一些javascript代码从您的帐户转帐,该代码使用其他标签中的Cookie!

一个解决方法是允许"遥控器"网站(https://www.website.com)接受原始网站的请求。你可以通过返回一个额外的标题

来实现
  

Access-Control-Allow-Origin:*

或者,哪个更安全,

  

Access-Control-Allow-Origin:原始网站的网址

来自' GET'远程网站的处理程序。你可以在这个漂亮的tutorial中阅读更多相关信息。