2013-03-07 33 views
-1

我有一个主域名为“maindomain.com”和子域的服务器。我会打电话给一个“addon.com。使用php的跨域子域.post使用php

我在addon.com网站上有一个index.php文件,它从maindomain.com文件夹的根目录下拉取php文件,它工作正常。 m有一个联系表格使用js发布到一个名为emailform.php的php文件,并且因为该文件位于主域中,所以我有跨域问题。

我试图解决问题的方法是在子域文件夹中创建另一个名为subemailform.php的php文件,该文件夹只包含emailform.php

如果我直接进入subemailform.php页面,那么emailform.php中的echo会显示出来。包括正在工作,但它不发送电子邮件了。

我认为这将是一个很好的解决方法。任何想法,为什么这不会工作和任何建议?

偏js代码:

function submitEmailForm() { 
    $.post('subemailform.php', { domainName: App.get('domainName'), name:  $('#emailFormName').val(), phone: $('#emailFormPhone').val(), skype: $('#emailFormSkype').val(), email: $('#emailFormEmail').val() }, function() { 
     // alert('success!'); 

subemailform.php

 <?php 
     include 'http://www.maindomain.com/emailform.php'; 
?> 

emailform.php具有$名称= $ _POST [ '名称'];和邮件($ to,$ email_subject,$ email_body,$ headers);码。

我应该指出,如果我从同一个域调用它,js和emailform.php将起作用。所以我知道代码正在工作。

+0

一些代码,请 – 2013-03-07 06:22:50

+0

一个子域是“www.example.com”或“fancyname.example.com”当你有一个域“example.com”。 “addon.com”不是“example.com”的子域名,它是一个完全不相关的域名。这会影响浏览器中的几件事情,例如共享Cookie。 – Sven 2013-03-07 07:49:36

回答

0

跨域调用不会起作用,直到你让尽可能

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods:POST'); 

或使用JSONP

+0

如果它被拉为包含在php中,这仍然被认为是跨域调用吗? – user1898907 2013-03-07 06:35:06

+0

我完全理解你的问题,但如果通过从不同的域呈现的页面完成,是的 – Rab 2013-03-07 06:42:46

+0

好的,谢谢...我会谷歌并阅读它。 – user1898907 2013-03-07 06:44:41