これは、dbをクエリし、Jsonファイル/オブジェクトを提供する私のASPWebサービスです。
<!--#include file="JSON_2.0.4.asp"-->
<!--#include file="JSON_UTIL_0.1.1.asp"-->
<%
Response.CodePage = 28591
Response.CharSet = "ISO-8859-1"
'response.write("ç ã â é À á") -> characters are written correctly with or without the two lines above but not the json feed
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
Connection.Open "Provider=sqloledb;SERVER=localhost;DATABASE=DB;UID=user;PWD=PASS;"
QueryToJSON(Connection,"select field1, field2, field3, field4, FROM table").flush
%>
応答テキスト:
[{"col1": "value1"、 "col2": "value1"、 "col3": "value1"}、{"col1": "value2"、 "col2": "value2"、 "col3": "value2 "}、{" col1 ":" value3 "、" col2 ":" value3 "、" col3 ":" value3 "}]
応答jsonは適切にエンコードされておらず、句読点「\ u00E9」を置き換え、値の中央と最後に多くのスペースを追加しています。このファイルをブラウザで直接開くと、置き換えられた文字を除いて問題ないように見えますが、xmlhttp.responseTextとしてIndexedDBにフィードすると、console.logに多くのスペースと改行が表示され、「 DataError:オペレーションに提供されたデータが要件を満たしていません。」エラー。スペースと改行は、この「\n」のような置き換えられた文字が原因である可能性があると思います
アップデート:
"xhr.setRequestHeader( "Content-Type", "application/json", "Charset=ISO-8859-1");"
ajaxリクエストで使用しようとしましたが、機能しません