2016-09-13 27 views
1

私は、フォームの詳細をInsightly CRM for Webに送ってHTMLコードをリードしようとしています。私は自分のfunctions.phpに以下のコードで、フォームのアクションURLを変更:お問い合わせフォーム7ワードプレスポストフォームから別のドメインへアクセス制御で原点エラーを許容

add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url'); 
function wpcf7_custom_form_action_url($url) { 
    global $post; 
    $id_to_change = 1315; 
    if($post->ID === $id_to_change) 
    return 'https://xxxx.insight.ly/WebToLead/Create'; 
    else 
    return $url; 
} 

すべてが検査員に正常に見えるが、私は、提出に次のエラーを取得:

XMLHttpRequest cannot load https://xxxx.insight.ly/WebToLead/Create. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://xxxx.com' is therefore not allowed access. 

を、私はこれを追加してみました私のfunctions.php:

add_action('init', 'allow_origin'); 
function allow_origin() { 
    header("Access-Control-Allow-Origin: *"); 
} 

私はtheme.phpでこれを追加してみました:

header("Access-Control-Allow-Origin: *"); 
私はコンタクトフォーム7プラグインのscripts.jsにこれを追加しようとした

$.ajax({ 
    url: url, 
    ++headers: { 'Access-Control-Allow-Origin': '*' }, 
    ++crossDomain: true, 

私は.htaccessファイルにこれを追加してみました:

Header always set Access-Control-Allow-Origin "*" 

何も機能しません:( 私のサーバーはワニス4がありますとConfigServerセキュリティ&ファイアウォールは、私は両方を無効にしても、同じエラーが発生します。 私に助けてください:(

答えて

1

私の研究の後、私はJavaScriptが問題であり、私の側でどのようにしても "Access-Control-Allow-Origin"でバイパスすることができないことに気付きました。 私はカール。それは、他のドメインに詳細を送信することができますので、

を引っ掛け、PHPスクリプト内だから私は、私はwpcf7_mail_sent関数をオーバーライドしています私のfunctions.phpでフックを追加しました:

add_filter('wpcf7_mail_sent', 'wpcf7_custom_mail_sent'); 
function wpcf7_custom_mail_sent($contact_form) { 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL,"https://xxxx.insight.ly/WebToLead/Create"); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($_REQUEST)); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    curl_exec($ch); 
    curl_close($ch); 
} 
関連する問題