从横幅发送GET请求

时间:2014-12-18 11:08:47

标签: actionscript-3 flash actionscript get

我必须制作一个横幅,人们在点击时填写表格,并发送电子邮件,我们会发送数据,以便立即发送回来。

我不是开发者,所以对我来说有点混乱,我希望我的解释能够清楚。

显然,该网站只接受POST请求,但由于跨网域问题,我们无法从横幅发送。所以请求必须作为GET发送。 我们发现此网站进行转换: http://get-to-post.nickj.org/

为了测试的目的,一切都是硬编码的。当我们测试时,这个网址:

http://get-to-post.nickj.org/?http://www.vikingrivercruises.co.uk/Forms/SaveRequestBrochures?InquiryReason[0]=2351&InquiryMessage[0]=UK+River+Brochure+Download&InquiryType[0]=Brochure-d&InquiryReason[1]=1450&InquiryMessage[1]=UK+Brochure+Requests+%28from+web%29&InquiryType[1]=Brochure&BrochureCode=UKBR15&SelectedBrochuresDeliverability=UKBR15+mail-yes+ebrochure-yes&selectedBrochures=UKBR15&Title=Mr.&FirstName=Andrew&LastName=Davies&EmailAddress=nicom21a%40gmail.com&PhoneNumberString=098921313132312&Country=United+Kingdom&OtherCountry=&Address1=&Address2=&Address3=&City=&State=&OtherState=&Zip=&EmailMeSpecialOffers=true&FriendTitle=&FriendFirstName=&FriendLastName=&FriendEmailAddress=&RedirectUrl=http%3A%2F%2Fwww.vikingrivercruises.co.uk%2Fbrochures%2Frivers-brochure-thank-you.html

并在浏览器中复制它,它完美地工作,我们立即收到一本小册子,但当我尝试从横幅复制它时它不起作用。 这是我的代码,非常感谢

var requestVars:URLVariables = new URLVariables();

requestVars.link = 'InquiryReason[0]=2351&InquiryMessage[0]=UK+River+Brochure+Download&InquiryType[0]=Brochure-d&InquiryReason[1]=1450&InquiryMessage[1]=UK+Brochure+Requests+%28from+web%29&InquiryType[1]=Brochure&BrochureCode=UKBR15&SelectedBrochuresDeliverability=UKBR15+mail-yes+ebrochure-yes&selectedBrochures=UKBR15&Title=Mr.&FirstName=Andrew&LastName=Davies&EmailAddress=nicom21a%40gmail.com&PhoneNumberString=098921313132312&Country=United+Kingdom&OtherCountry=&Address1=&Address2=&Address3=&City=&State=&OtherState=&Zip=&EmailMeSpecialOffers=true&FriendTitle=&FriendFirstName=&FriendLastName=&FriendEmailAddress=&RedirectUrl=http%3A%2F%2Fwww.vikingrivercruises.co.uk%2Fbrochures%2Frivers-brochure-thank-you.html'

var request:URLRequest = new URLRequest();
request.url = 'http://get-to-post.nickj.org/?http://www.vikingrivercruises.co.uk/Forms/SaveRequestBrochures';
request.method = URLRequestMethod.GET;
request.data = requestVars;

for (var prop:String in requestVars) {
trace("Sent " + prop + " as: " + requestVars[prop]);
}

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

我也尝试过那样

request.url = 'http://get-to-post.nickj.org/?http://www.vikingrivercruises.co.uk/Forms/SaveRequestBrochures?';

1 个答案:

答案 0 :(得分:0)

我认为你的案件中有很多要点应该澄清:

  • 如果你想向服务器发送一个URL请求,但忽略任何响应,我认为这是你的情况,因为你无法获得响应,最好使用 sendToURL < / strong>而不是URLLoader.load()

  • 如果你在线测试你的swf,你会收到一个安全错误,因为使用过的站点(http://get-to-post.nickj.org/)没有crossdomain.xml文件来获得执行URL的授权:{{ 3}}

  • 即使您成功执行sendToURL,也会遇到其他问题,因为您提到的将GET请求转换为POST请求的网站将不会执行此操作这项工作是因为它正在创建一个带有POST表单的页面,其中包含您的数据,并在加载页面时提交该页面,而该页面从未被闪存解雇。

因此,我认为最好查看目标网站(vikingrivercruises)的跨域问题,以授予您发送POST数据的权限。如果它始终不可能,请尝试设置另一个获取GET数据的网址(网站),然后通过curl将其发送到目的地。