Возврат JSONP из Классического ASP с кодировкой на стороне сервера Javascript - PullRequest
1 голос
/ 09 марта 2012

Я вызываю классическую страницу .asp из jquery, чтобы вернуть список (используя JSONP). Я хочу использовать JSONP из-за той же политики происхождения, которая вызывает проблемы при просмотре моего веб-сайта через Google Translate. Проблема со всеми решениями, которые я нашел, состоит в том, что они предполагают, что страница asp использует VBscript в качестве языка на стороне сервера. Я использую javascript в качестве языка на стороне сервера, в asp, для подключения к БД и возврата результатов.

Я пробовал несколько разных методов, которые вернули только 500 ошибок сервера. Вот мой вызов jquery:

$.ajax({
  dataType: 'jsonp',
  url: 'website/page.asp',
 success: function () {
    alert(data);
  },
});

А это мой page.asp:

<%@ language="Javascript" %>

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

var jsonValue = eval('('hello world')');
Response.Write(jsonValue);

</script>

Все, что я хочу сделать, - это создать простой вызов JSONP hello world, чтобы я мог начать изменять его, чтобы включить данные из запроса, который я делаю, в базу данных. У кого-нибудь есть простая версия этого? Возможно ли это?

1 Ответ

2 голосов
/ 09 марта 2012

Ваш пример не имеет смысла. Во-первых, он имеет неверный синтаксис («hello world» - строка, но она не в кавычках). Во-вторых, вы хотите закодировать JSON в своем коде asp, но использование eval будет (неправильным) способом декодирования JSON. Вот что, я думаю, вы могли бы сделать, используя json2.js Крокфорда для кодирования вашего объекта, например:

var sourceObj = { "testkey" : "test value", "otherkey" : 5 };
var jsonstr = JSON.stringify(sourceObj);
Response.Write("yourjsonpCallbackName (" + jsonstr + ");");
...