2012-03-22 13 views
1

タイトルにエラーが表示されています--JSONはnullまたはオブジェクトではありません。'JSON'がnullまたはオブジェクトではありません 'ASPのエラー

私は古典的なASPページの中にいます。私のjson2.jsファイルは、この古典的なaspページと同じディレクトリにあります。そのため、サーバーがJSON.parse()メソッドを認識できないように見えない理由はわかりません。 私のスクリプト言語はJScriptです。

私は、別のスレッドでは、json2.jsライブラリを使用する方法があることに気付きました。しかし、私はこれが動作するように見えることはできません。これはクールークですか?これは非常に簡単ではありませんか?

requestBodyは、単純なJSONオブジェクトです:[{ "答え": "OK"}、{ "答え": "晴れ"}]

ありがとう!

<script language="javascript" runat="server" src="json2.js"></script> 

<% 
    var jsonObject = JSON.parse(requestBody); 

%> 

答えて

3

確かにわかりませんが、まずはjson2.jsの権限を確認してください。 icacls.exeを使用して、そのファイルのアクセス許可が.ASPページ自体のpermと一致することを確認します。 - あなたはIISマネージャで、ASPのデバッグ設定をいじることができ、デバッグASPを支援することも

%windir%\system32\icacls.exe json2.js /grant "NT AUTHORITY\IUSR:(RX)" 
%windir%\system32\icacls.exe json2.js /grant "BUILTIN\IIS_IUSRS:(RX)" 

:私はこれを行います。 [クライアントにエラーを送信]をクリックすると、クライアントのブラウザウィンドウにエラーが表示されます。

また、手動でweb.configファイルにこれを追加することができます:ビスタ/ 2008/Win7のオン

<configuration> 
    <system.webServer> 
    <httpErrors errorMode="Detailed" existingResponse="PassThrough" /> 
    <asp scriptErrorSentToBrowser="false" /> 
    </system.webServer> 
</configuration> 

を、あなたもこれを許可してweb.configスタンザを "アンロック" する必要があるかもしれません。

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/asp 

これは、「JSONオブジェクトではありません」問題を解決しませんが、障害が発生した場合、それはあなたのより良いエラーメッセージを与えるだろう。

+0

ありがとう。あなたは真剣に深い知識を持っています。 – user798719

-2

.NET Framework 3.5には、jsonオブジェクトの逆シリアル化に役立つJavaScriptSerializerクラスがあります。 JSON.NETのようなサードパーティのライブラリを使用することもできます。

+0

質問は古典的なASP(preASB.NET)についてです。 –

1

すぐにテストケースを作成してください。あなたの側にしようとする

もの:

  1. json2.aspに含まれるファイルの名前を変更し、に変更してみてください。

    <script language="javascript" runat="server" src="json2.asp"></script> 
    

    MIMEタイプと、そのようなものに問題がある可能性があります。

  2. 運がない場合は、ファイル名を変更せずに、自分のページではなくブラウザでjson2.aspに直接アクセスしてみてください。

  3. 含まれているファイルにデバッグコードを追加して、実行中かどうかを確認してください。

まだお使いにならない場合は、使用しているサーバーと使用しているプラ​​ットフォームを教えてください。

関連する問題