2013-04-22 2 views
0

Я интегрирую yahoo open ID для своего сайта. Мой сайт работает для разных языков (en, jp, cn и т. Д.). Когда я пытаюсь войти с английского сайта с идентификатором yahoo opend, тогда это прекрасно, но когда то же самое я пробовал с японского или китайского сайта, тогда он не перенаправляет меня на yahoo open id login.Войти с помощью yahoo с помощью OpenID для многоязычного сайта

Каждый раз, когда я получаю ошибку ниже от JavaScript

Error: The character encoding of the plain text document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the file needs to be declared in the transfer protocol or file needs to use a byte order mark as an encoding signature. Source File: http://uatstorefrontjpcr.mobi-book.com/ReturnFromSocial/LogOnYahoo Line: 0

Может кто-нибудь посоветует, что делать.

Я использовал для этого SocialAuth-net.dll. Я установил всю необходимую оболочку в web.config. То же кодирование в порядке с Google и facebook open ID.

+0

Я нашел решение. Так что закройте это сейчас – Manoj

ответ

0

Ваш веб-сервер, вероятно, отправит ответ с Content-Type из text/plain. Когда веб-браузер получает ответ с этим типом контента, он не знает, какую кодировку следует использовать для его декодирования; поскольку вы не сказали, как его декодировать, разные браузеры могут выбирать разные способы.

Решение заключается в предоставлении явного кодирования. Например, если вы знаете, что текст UTF-8 кодируются, то вы могли бы представить его в заголовке следующим образом:

Content-Type: text/plain; charset=UTF-8 

Согласно an informational page от W3C, вы можете получить ASP.Net включить этот бит в заголовке, используя Response.ContentEncoding. Снова используя UTF-8 в качестве примера, вы можете настроить его так:

Response.ContentEncoding = Encoding.UTF8; 
+0

Спасибо за ваше время, но я уже решил эту проблему и закрыл – Manoj