$ .post работает, но не $ .get?На другом домене? - PullRequest
1 голос
/ 23 августа 2011

Я застрял в проблеме с чтением данных с сервера.Данные хранятся в виде строки CSV, и я использую php для чтения данных.

Чтение данных

<?php 
    header('Content-Type: text/plain'); 
    $csv = file_get_contents('string.csv'); 
    echo $csv; 
?>

$.ajax({ 
    type: 'GET', 
    url: 'http://www.foobar.com/csv.php',
    async: false,
    data: null, 
    success: function(text) { 
        sv_serverArray = text.split(",");
        alert(sv_serverArray);
    } 
});

Вызов Ajax выполняется в домене http://www.example.comphp файл обслуживается http://foobar.com/csv.php

Когда я публикую данные от http://www.example.com до http://www.foobar.com/write.php, это работает!Но не наоборот.

Запись данных

<?php
    $list = $_POST["array"];
    $fp = fopen('string.csv', 'w');
    fputcsv($fp, $list);
    fclose($fp);
?>

$.post("http://www.foobar.com/write.php", { 'array': sv_defaultArray});

В чем проблема и почему я могу только писать, а не читать ?!если что-то я получаю ошибки наоборот !!

Ответы [ 3 ]

4 голосов
/ 23 августа 2011

$.post() генерирует подводный мир и использует его для публикации. Когда размещено, это реальный запрос. $.get() использует XMLHttpRequest, который ограничен Политикой того же происхождения . Лучший способ обойти это - jsonp . (либо конвертируйте CSV в json, либо инкапсулируйте его).

2 голосов
/ 23 августа 2011

Проверьте междоменные решения здесь ..

2 голосов
/ 23 августа 2011

Вы не можете сделать Межсайтовый скриптинг таким образом в целях безопасности

Прочитайте это: Междоменный AJAX-запрос с помощью jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...