質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Salesforce

Salesforceは、クラウド型の顧客関係管理(CRM)、営業支援(SFA)などのサービスを提供している企業。米カリフォルニア州に本社があり、日本法人は株式会社セールスフォース・ドットコムです。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

877閲覧

社内システムからSalesforceに接続したい

thtk

総合スコア10

Salesforce

Salesforceは、クラウド型の顧客関係管理(CRM)、営業支援(SFA)などのサービスを提供している企業。米カリフォルニア州に本社があり、日本法人は株式会社セールスフォース・ドットコムです。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2018/11/08 08:39

編集2022/01/12 10:55

前提・実現したいこと

XMLHttpRequestでSalesforceに接続したいです。
社内システムとしてIBM Notesを使用しており、
JavaScriptで記述したXpage(Chromeで表示)からSalesforceに接続したいです。

発生している問題・エラーメッセージ

<追記>
CORS (Cross-Origin Resource Sharing)関係のエラーが出ています。
サーバ側の設定方法が不明なのでご教授いただきたく、

ChromeConsole

1Uncaught ReferenceError: onLoadFunc is not defined 2 at view__id1__id91_clientSide_onclick (XAgent_UI.xsp:171) 3 at _3.x_dfe [as _doFireEvent] (@Iq.js:45) 4 at _3.x_fe [as fireEvent] (@Iq.js:45) 5 at HTMLButtonElement.xaep_fpre (@Iq.js:45)

該当のソースコード

JavasScript

1//ファイル名:UI.xsp 2 3// URLを生成 4var url = "https://login.salesforce.com/services/oauth2/token?grant_type=password&client_id=(省略)&client_secret=(省略)&username=(省略)&password=(省略)"; 5 6// XMLHttpRequestを作成 7try { 8 xmlhttp = new XMLHttpRequest(); 9} catch (e){ 10 // XMLHttpRequestの作成に失敗 11} 12 13// REST APIのセットと送信 14xmlhttp.onreadystatechange = chkResponse; 15xmlhttp.open('POST', url, true); 16xhr.withCredentials = true;//追記 17xhr.addEventListener('load', onLoadFunc, false);//追記 18xmlhttp.setRequestHeader ( "Content-Type","application/x-www-form-urlencoded" ); 19xmlhttp.send(); 20 21// REST APIのレスポンスの処理(正常時のみ処理する) 22function chkResponse() { 23 if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) { 24 25 var ret = xmlhttp.responseText; 26 var obj = JSON.parse( ret ); 27 28 //・・・・(省略) 29 30 } 31}

試したこと

CORSをXAgentなるもので解決できると知り、スニペット流用(参考サイト:CORS問題の解決)で動かしてみたのですが、こちらもSalesforceに接続することができず、何かエラーが起こっているのかどうかの現状の問題を確認する術もなく、XAgentに頼らないより一般的な方法をと思い、質問させていただきました。

Chromeの拡張機能「RestletClient-REST API Testing」を使って、Salesforceの同じURLに対しトークン要求をしてSalesforceのトークンを取得できることは確認できました。

<追記>
Chrome開発者コンソールで確認したところ、CORSによるエラーが出ておりましたので、クライアント側で以下の2行を追加したのですが、サーバ側はどのように設定したらよいのでしょうか。Access-Control-Allow-Originの設定方法がわかりません。。

xhr.withCredentials = true; xhr.addEventListener('load', onLoadFunc, false);

参考サイト

CORS問題の解決
http://guylocke.blogspot.com/2014/12/xagent.html

<追記>
https://qiita.com/tomoyukilabs/items/81698edd5812ff6acb34

Salesforceアクセストークンの要求
https://help.salesforce.com/articleView?id=remoteaccess_oauth_username_password_flow.htm

RestletClient-REST API Testingでの接続
https://web.plus-idea.net/2016/06/salesforce-rest-api-call-setting/

補足情報(ツールのバージョンなど)

クライアントアプリ:IBM Notes Client 9.0.1 FP5/Domino Server 9.0.1 FP8
Xpages表示:GoogleChrome(バージョン70)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/11/12 01:31

JavaScript の場合は、まず、Webブラウザの開発者ツールのコンソールを利用して、Webページにエラーが出ていないか確認してください。
thtk

2018/11/12 02:10

ありがとうございます。コンソールでエラー情報を確認することができました。これを踏まえ質問内容に修正を加えようと思います。
guest

回答1

0

onLoadFunc is not defined

「"onLoadFunc"が定義されていない」というごく単純なエラーに見えます。

投稿2018/11/28 06:32

ladybird

総合スコア163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問