JSONP и обмен файлами cookie с одного сервера на другой? - PullRequest
1 голос
/ 21 июня 2010

Я работаю в интранет-системе (.NET 3.5); основные страницы обслуживаются со стандартного сервера ASP.NET. Я хотел бы использовать Ajax на этих страницах для связи со службой WCF, работающей на другом компьютере, для извлечения данных, выполнения операций CRUD - обычные вещи Ajax.

Проблема, которую я пытаюсь решить: могу ли я взять куки, которые были установлены сервером ASP.NET, и включить их в запросы к службе WCF? Если да, то как?

Насколько я понимаю, JSONP обходит ограничения XSS, "оборачивая" Ajax-запрос в стандартный тег . Имея это в виду, мне кажется, что браузер зависит от того, какие файлы cookie (если они есть) будут включены в MyAjaxCall. Поскольку файлы cookie исходят от сервера ASP.NET, браузер, скорее всего, не будет включать их в вызов WCF.

Поскольку это приложение для внутренней сети, я не могу полностью полагаться на подстановочные знаки домена (* .mydomain.com), чтобы гарантировать, что файлы cookie используются несколькими компьютерами - клиент может обращаться к компьютерам по их простому сетевому имени или даже по IP. обращайтесь напрямую.

edit : принятие ответа Джулиана, поскольку использование JS для ручного захвата полезной нагрузки cookie и его заделки на URL кажется единственным способом обойти ограничение (хотя это выглядит несколько не элегантно:)

1 Ответ

1 голос
/ 12 июля 2010

Вы совершенно правы, предполагая, что у вас возникнут проблемы с файлами cookie.

Единственный обходной путь - фактически передать интересующие значения в строку запроса JSONP-запроса.Это означает, что вам придется проверять файлы cookie на стороне клиента, извлекать из них нужные вам данные и затем добавлять их в URL «вручную».

...