公開サイトのページにアプリケーションの部分があります。 そのアプリでは、ユーザーが認証されるとJSOM呼び出しが正常に機能します。 匿名モードでは、アプリケーション部分を含むページのリロード後にのみ動作します。最初のロード時には、私はこのエラーメッセージが表示されます:サーバーはJSOMコールの403(FORBIDDEN) http://app-4e3210d8daa297.abc.com/MyList/_vti_bin/client.svc/ProcessQueryJSOMは、ページの最初の読み込み時に匿名モードでアプリケーションでの呼び出しを拒否します(読み込みが解決します)。
エラーハンドラの状態で応答し、「未定義」エラーを返す:
は、リソースのロードに失敗しましたメッセージ。
しかし、私はページをリロードするか、(javascriptコードを使って)app-part自体をリロードすれば動作します。
ページの最初の読み込み時にJSOM呼び出しが禁止されるのはなぜですか?これをどうすれば解決できますか?
スクリプトを試してみたり、何度も試してみましたか?あなたのスクリプトはいつ始まりますか? – Nils
スクリプトは、いくつかのsharepoint javascriptファイルとdomがロードされるのを待ちます。この問題を解決するには、jsom呼び出しのエラーハンドラでエラーをキャッチし、それを含むiframeのURLを変更してアプリケーションをリロードします(ループを避けるために&reload = trueを追加します)。これは迅速かつ汚れた修正のように感じる。 – Cyril
あなたのコードでconsole.logを使用する場合は、開発者コンソールが開いているときのみIEでのみ動作します。それ以外の場合は、コードをキャンセルします。 – Nils