function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
sghsdhgsghsdhg 

カスタムボタンのJavaScriptを使用しての、外部サイトへのxmlhttprequest

カスタムボタンのJavaScriptを使用して、外部サイトへのxmlhttprequestを行いたいのですが、うまくいきません。

 

下記サイトのサンプルコードで、HTML内に記述されたJavaScript部分と全く同じ機能

をカスタムボタンのみで実現しようとしています。

(ボタンを押すと、参照先テキストの中身がポップアップで表示される)

 

http://www.ajaxtower.jp/ini/http/index6.html

 

 

実際に書いたコードは以下です。

--------------------------------------------------------------------------------------------------------

{!REQUIRESCRIPT('/soap/ajax/20.0/connection.js')}
{!REQUIRESCRIPT('/soap/ajax/20.0/apex.js')}

 

  if (window.XMLHttpRequest){
    xmlHttp = new XMLHttpRequest();
  }else{
    if (window.ActiveXObject){
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
      xmlHttp = null;
    }

xmlHttp.onreadystatechange = checkStatus;
xmlHttp.open("GET", "http://www.ajaxtower.jp/sample/plan.txt", true);
xmlHttp.send(null); 

 

function checkStatus(){
  if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
    alert(xmlHttp.responseText);
  }
}

 --------------------------------------------------------------------------------------------------------

 

IE8、crome、firefoxで試しましたが、どれもうまくいきませんでした。

どうすれば参照先のテキストをポップアップ表示されるかご教授いただけますでしょうか。

 

 

※設定画面で、外部サイトURLは登録済みです。

http://help.salesforce.com/HTViewHelpDoc?id=configuring_remoteproxy.htm&language=ja

 

 

 

Best Answer chosen by Admin (Salesforce Developers) 
Mitch OkamotoMitch Okamoto

単純に外部サイト(Salesforce.com以外のドメイン)へXMLHttpRequestを送ろうとすると、クロスドメイン制約に引っかかってしまうので、呼び出す事はできないと思います。

ご指摘のコードだとAjax Toolitを読み込んでいますが、XMLHttpRequestを直接叩いてしまってますね。

 

Ajax Toolitの中にある sforce.connection.remoteFunction メソッドを利用する事で、実際の通信は

 

ブラウザのJavascript <-> Salesforceのサーバ <-> 外部Webサイト

 

となる様にSalesforceがProxyの働きをします。

このためブラウザのクロスドメイン制約を回避出来ます。

 

外部サイトURLへの登録は、Ajaxで利用する場合このProxyの通過を許可するURLを設定している事になります。

英語ですが以下のサイトを参考にしてみて下さい。

 

AJAX ProxyでWebサービスマッシュアップ

http://blogjp.sforce.com/2007/08/ajax_proxyweb_55af.html

 

 

Ajax Tookit Developer's Guide - Advanced Topics

http://www.salesforce.com/us/developer/docs/ajax/Content/sforce_api_ajax_queryresultiterator.htm

 

Ajax Proxy

http://wiki.developerforce.com/page/Ajax_Proxy