2013-06-07 6 views
3

Я просто хочу передать массив javascript с одной страницы на другой массив javascript на другой странице в том же домене. Получение Php не работает, потому что пользователь не должен видеть данные, и я не знаю, как это можно сделать с сообщением. Как бы вы решили это?Как передавать данные javascript между веб-сайтами?

Спасибо.

+0

Является ли страница в том же домене? – lonesomeday

+0

да, они оба находятся в одном домене. – user2127042

ответ

6

Да, это тривиально легко сделать. Лучший способ - использовать localStorage, который по сути является куки для 21 века.

Итак, на первой странице:

localStorage.setItem('data', JSON.stringify(yourdata)); 

А на второй странице:

var yourdata = JSON.parse(localStorage.getItem('data')); 

Вы можете использовать sessionStorage, если вам нужны только данные для работы на текущей сессии браузера.

Если вам нужно поддерживать старые браузеры, есть различные прокладки, которые добавят функциональность. This one выглядит неплохо для меня.

+0

Я даже не думал о localStorage по этой причине, но мне очень нравится идея. Спасибо! – user2127042

+0

Неважно, но вы можете предложить использовать 'setItem' и' getItem' вместо прямого доступа к свойствам объекта 'localStorage'. Основная причина ** Я ** предполагаю, что это связано с тем, что когда используются полисы, этот метод обычно не реализован/возможен ... в то время как методы являются стандартными и всегда будут работать *. Кроме того, MDN «рекомендует» использовать эти методы вместо доступа к ресурсам, если это утешение – Ian

+0

@Ian Это очень полезно, спасибо. Я изменил код. Жаль, что документация MDN 'localStorage' настолько ужасная: я никогда не замечал этой рекомендации. – lonesomeday

2

Это будет межсайтовый скриптинг (XSS), который нельзя надежно выполнить с помощью JS.

Если страницы находятся в одном домене, вы можете использовать PHP $_SESSION для хранения данных, связанных с пользователем.

+0

Возможно, мне следовало бы предположить, что две страницы принадлежат одному домену. Это что-то меняет? – user2127042

+0

Это можно сделать надежно с помощью запроса ajax JSONP, поскольку он не нарушает одну и ту же начальную политику, поскольку тегам скрипта разрешено ссылаться на ресурсы за пределами домена. – JustinMichaels

+0

Решение сеанса также кажется довольно хорошим, но я думаю, что сейчас я просто пойду с localStorage. спасибо в любом случае. – user2127042

2

Вы можете попытаться сохранить этот массив в cookie с помощью js. После получения этого массива из файла cookie вы можете его удалить.

2

если вы используете JQuery вы можете сделать что-то вроде этого

$.post("test.php", { name: "John", time: "2pm" }); 
+0

AJAX не действует как обычная ссылка. – lonesomeday

+0

Это была моя первая попытка, но мне нужно открыть страницу, чтобы не только отправлять данные. – user2127042

+0

Это правильный ответ, если вы привязываете ссылку к функции, которая отключает этот запрос ajax, прежде чем выполнять поведение по умолчанию, тогда цель будет выполнена. – phpisuber01

-1

Если страницы того же домена:

Вы должны размещать data на другую страницу с помощью form/AJAX.

Если нет, С JS вы не

Вам нужна server сторона кода/процесс для обработки данных, как это.

Смежные вопросы