我遇到了从服务器读取数据的问题。数据存储为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.com上完成,php文件在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});
问题是什么?为什么我只能写而不读?如果有什么我应该反过来得到错误!!
答案 0 :(得分:4)
$.post()
生成水下,并用它来发布。发布时,这是一个真实的请求。
$.get()
使用XMLHttpRequest,它由Same-Origin Policy绑定。避免这种情况的最佳方法是jsonp。 (将CSV转换为json,或封装它)。
答案 1 :(得分:2)
出于安全目的,您无法以这种方式执行Cross Site Scripting
答案 2 :(得分:2)
检查跨域解决方案here ..